React-Datei-Upload-Formular
Baue ein Datei-Upload-Formular in React ganz ohne Backend und ohne eigene Upload-API. Die Komponente postet multipart FormData direkt an Formpaste, sodass die Datei zusammen mit den anderen Feldern in deinem Posteingang landet. Kopiere den Code und ergänze deinen Zugangsschlüssel.
So baust du es
- Erstelle ein Formular in deinem Formpaste-Dashboard und kopiere den Zugangsschlüssel.
- Verbinde Storage im Dashboard, damit das Formular Uploads annehmen kann.
- Kopiere die untenstehende Komponente, ergänze deinen Zugangsschlüssel und deploye.
Prompt für deinen KI-Coding-Agenten
Add a Formpaste file upload form to my React app. Use a component with a file input that POSTs the raw FormData (multipart/form-data, not URLSearchParams) to https://api.formpaste.com/submit with a hidden access_key input. Do not build an upload endpoint of my own.Oder verbinde den Formpaste-MCP-Server mit Claude Code, Codex, Cursor, Claude Desktop, VS Code oder einem beliebigen mcp-remote-Client. Zur Einrichtungsanleitung.
React-Fallstricke
Ein React-Kontaktformular ist einfach eine Komponente mit einem Submit-Handler, der an Formpaste postet. Es gibt kein eigenes Backend und keine eigene API-Route. Platziere den Fetch in einer Komponente, die im Browser läuft, und du bist fertig.
Es ist eine Client-Komponente
Der onSubmit-Fetch läuft im Browser, das Formular lebt also in einer normalen Client-Komponente. In einer reinen React-SPA ist ohnehin jede Komponente client-seitig; in einem Framework mit Server-Komponenten fügst du die Client-Grenze dort ein, wo der Fetch läuft.
Keine API-Route, kein Proxy
Du postest nicht an eine eigene /api-Route und leitest von dort weiter. Die Komponente postet direkt an den Formpaste-Endpunkt, das spart einen kompletten Server-Roundtrip und einen Mailer, den du sonst selbst schreiben müsstest.
Controlled oder uncontrolled, beides funktioniert
Lies die Werte per FormData über das Formularelement (uncontrolled) oder aus useState (controlled). Uncontrolled bedeutet weniger Code für ein einfaches Kontaktformular; controlled ist praktisch, wenn du schon während der Eingabe validierst.
Verarbeite die Antwort im State
Der Endpunkt liefert JSON zurück (success, message, id). Warte auf den Fetch und setze einen State, um deine eigene Erfolgs- oder Fehler-UI anzuzeigen, oder hinterlege eine Weiterleitung im Dashboard und überspringe die Client-seitige Verarbeitung.
Worauf es ankommt
Eine Datei bedeutet multipart, nicht urlencoded
Sobald das Formular ein Datei-Feld enthält, muss es multipart Formulardaten senden. Der generierte Code setzt enctype und schickt das rohe FormData, sodass die Datei zusammen mit den anderen Feldern mitläuft. Du brauchst keinen eigenen Upload-Endpunkt.
Der Upload geht direkt vom Client zu Formpaste
Der Browser sendet die Datei direkt an Formpaste, sodass deine App den Upload nie puffert oder parst. Damit umgehst du Größen- und Laufzeitlimits von serverlosen Umgebungen komplett.
Setz klare Erwartungen bei Größe und Typ
Sag den Leuten, was du akzeptierst. Datei-Uploads sind ein Pro-Feature; verbinde zuerst Storage im Dashboard und halte das Feld ehrlich, was akzeptierte Typen und Größe angeht.
So funktioniert es
Drei einfache Schritte, bis Formular-Einsendungen in deinem E-Mail-Posteingang landen.
Erstelle dein Formular, setze die action-URL auf den Formpaste-Endpunkt und trage deinen Zugangsschlüssel ein.
Formular erstellen
Melde dich an, verifiziere deine E-Mail und erstelle einen Zugangsschlüssel im Dashboard.
Code kopieren
Füge das Snippet oben in dein Projekt ein. Wähle CSS oder Tailwind passend zu deiner Website.
import { useState } from "react";
const ENDPOINT = "https://api.formpaste.com/submit";
export function FileUploadForm() {
const [status, setStatus] = useState("idle");
async function submit(e) {
e.preventDefault();
setStatus("sending");
const form = new FormData(e.currentTarget);
const res = await fetch(ENDPOINT, { method: "POST", body: form });
setStatus(res.ok ? "ok" : "error");
}
if (status === "ok") return <p>Thanks - your file was uploaded.</p>;
return (
<form onSubmit={submit} encType="multipart/form-data">
<input type="hidden" name="access_key" value="YOUR_ACCESS_KEY_HERE" />
<input name="name" placeholder="Name" required />
<input type="email" name="email" placeholder="Email" required />
<input type="file" name="file" required />
<button type="submit" disabled={status === "sending"}>Upload</button>
</form>
);
}
Zugangsschlüssel hinzufügen
Ersetze den Platzhalter durch deinen Zugangsschlüssel, um Einsendungen zu empfangen.
<input type="hidden" name="access_key" value="YOUR_ACCESS_KEY_HERE">React-Datei-Upload-Formular FAQ
Formular einfügen. Einsendungen erhalten.
Sofort, ohne Backend, Server oder Datenbanken einzurichten. 250 Einsendungen/Monat kostenlos - keine Kreditkarte.