Fix: Remove BMP format and improve error handling for Vercel deployment

This commit is contained in:
danielvici123
2025-05-16 00:45:20 +02:00
parent d478acc6e3
commit 8ec2dc6506
2 changed files with 12 additions and 19 deletions

View File

@@ -34,9 +34,6 @@ export async function POST(req: NextRequest) {
case 'gif': case 'gif':
convertedBuffer = await sharpInstance.gif().toBuffer() convertedBuffer = await sharpInstance.gif().toBuffer()
break break
case 'bmp':
convertedBuffer = await sharpInstance.bmp().toBuffer()
break
default: default:
throw new Error('Unsupported format') throw new Error('Unsupported format')
} }
@@ -50,7 +47,7 @@ export async function POST(req: NextRequest) {
} catch (error) { } catch (error) {
console.error('Conversion error:', error) console.error('Conversion error:', error)
return NextResponse.json( return NextResponse.json(
{ error: 'Error converting image' }, { error: 'Error converting image. Make sure the input format is supported.' },
{ status: 500 } { status: 500 }
) )
} }

View File

@@ -18,7 +18,7 @@ export default function ImageConverter() {
const { getRootProps, getInputProps, isDragActive } = useDropzone({ const { getRootProps, getInputProps, isDragActive } = useDropzone({
onDrop, onDrop,
accept: { accept: {
'image/*': ['.jpeg', '.jpg', '.png', '.gif', '.webp', '.bmp'] 'image/*': ['.jpeg', '.jpg', '.png', '.gif', '.webp']
}, },
multiple: false multiple: false
}) })
@@ -40,13 +40,10 @@ export default function ImageConverter() {
if (!response.ok) { if (!response.ok) {
const errorData = await response.json() const errorData = await response.json()
throw new Error(errorData.error || 'Konvertierung fehlgeschlagen') throw new Error(errorData.error || 'Conversion failed')
} }
// Blob aus der Antwort erstellen
const blob = await response.blob() const blob = await response.blob()
// Download-Link erstellen und klicken
const url = window.URL.createObjectURL(blob) const url = window.URL.createObjectURL(blob)
const a = document.createElement('a') const a = document.createElement('a')
a.href = url a.href = url
@@ -56,7 +53,7 @@ export default function ImageConverter() {
window.URL.revokeObjectURL(url) window.URL.revokeObjectURL(url)
document.body.removeChild(a) document.body.removeChild(a)
} catch (err) { } catch (err) {
setError(err instanceof Error ? err.message : 'Ein Fehler ist aufgetreten') setError(err instanceof Error ? err.message : 'An error occurred')
} finally { } finally {
setIsConverting(false) setIsConverting(false)
} }
@@ -65,7 +62,7 @@ export default function ImageConverter() {
return ( return (
<main className="min-h-screen p-8"> <main className="min-h-screen p-8">
<div className="max-w-2xl mx-auto"> <div className="max-w-2xl mx-auto">
<h1 className="text-4xl font-bold mb-8 text-white">Bild Converter</h1> <h1 className="text-4xl font-bold mb-8 text-white">Image Converter</h1>
<div className="bg-zinc-800 rounded-lg shadow-md p-6"> <div className="bg-zinc-800 rounded-lg shadow-md p-6">
<div className="space-y-6"> <div className="space-y-6">
@@ -79,20 +76,20 @@ export default function ImageConverter() {
<input {...getInputProps()} /> <input {...getInputProps()} />
<p className="text-gray-300"> <p className="text-gray-300">
{isDragActive {isDragActive
? 'Lass das Bild hier fallen...' ? 'Drop the image here...'
: 'Ziehe ein Bild hierher oder klicke zum Auswählen'} : 'Drag & drop an image here, or click to select'}
</p> </p>
{selectedFile && ( {selectedFile && (
<p className="mt-2 text-blue-400"> <p className="mt-2 text-blue-400">
Ausgewählt: {selectedFile.name} Selected: {selectedFile.name}
</p> </p>
)} )}
</div> </div>
{/* Format Auswahl */} {/* Format Selection */}
<div> <div>
<label className="block text-sm font-medium text-gray-300 mb-2"> <label className="block text-sm font-medium text-gray-300 mb-2">
Zielformat Target Format
</label> </label>
<select <select
value={convertTo} value={convertTo}
@@ -103,7 +100,6 @@ export default function ImageConverter() {
<option value="jpg">JPG</option> <option value="jpg">JPG</option>
<option value="webp">WebP</option> <option value="webp">WebP</option>
<option value="gif">GIF</option> <option value="gif">GIF</option>
<option value="bmp">BMP</option>
</select> </select>
</div> </div>
@@ -114,7 +110,7 @@ export default function ImageConverter() {
</div> </div>
)} )}
{/* Konvertieren Button */} {/* Convert Button */}
<button <button
onClick={handleConvert} onClick={handleConvert}
disabled={!selectedFile || isConverting} disabled={!selectedFile || isConverting}
@@ -124,7 +120,7 @@ export default function ImageConverter() {
: 'bg-blue-500 hover:bg-blue-600'} : 'bg-blue-500 hover:bg-blue-600'}
`} `}
> >
{isConverting ? 'Konvertiere...' : 'Konvertieren'} {isConverting ? 'Converting...' : 'Convert'}
</button> </button>
</div> </div>
</div> </div>