Heim  >  Artikel  >  Web-Frontend  >  Wie kann der mehrteilige Grenzfehler beim Hochladen von Dateien mithilfe von Ajax XMLHttpRequest behoben werden?

Wie kann der mehrteilige Grenzfehler beim Hochladen von Dateien mithilfe von Ajax XMLHttpRequest behoben werden?

DDD
DDDOriginal
2024-10-18 16:42:08300Durchsuche

How to Resolve the Multipart Boundary Error in File Uploads Using Ajax XMLHttpRequest?

Datei-Upload mit Ajax XMLHttpRequest: Multipart Boundary Error beheben

Beim Versuch, eine Datei mit XMLHttpRequest zu übertragen, kann der folgende Fehler auftreten:

The request was rejected because no multipart boundary was found.

Dieser Fehler bedeutet, dass Ihrem Code der richtige Ansatz für den Umgang mit mehrteiligen Formulardaten fehlt. Um dieses Problem zu beheben, gehen wir auf zwei Schlüsselbereiche ein:

  1. XHR-Dateieigenschaft: Die Zeile xhr.file = file; ist überflüssig. Das Dateiobjekt sollte nicht auf diese Weise zugewiesen werden.
  2. Dateiübertragung: Ändern von xhr.send(file); wird die Datei nicht effektiv übertragen. Verwenden Sie stattdessen das FormData-Objekt, um die Multipart-/Formulardaten-Nutzlast zu erstellen:
var formData = new FormData();
formData.append("thefile", file);
xhr.send(formData);

Durch die Verwendung von FormData wird die Datei über die PHP-Variable $_FILES['thefile'] zugänglich.

Denken Sie daran, die Dokumentation und Demos von MDC und Mozilla Hack zu konsultieren, um weitere Hinweise zu diesem Thema zu erhalten.

Vorheriger falscher Vorschlag:

In der früheren Antwort wurde dies fälschlicherweise angegeben xhr.send(file); überträgt die rohen Postdaten. Während die Datei gesendet wird, ist es unbedingt erforderlich, FormData zu verwenden, um eine ordnungsgemäße Analyse auf dem Server sicherzustellen. Daher ist die obige Korrektur entscheidend für das Erreichen der gewünschten Funktionalität.

Das obige ist der detaillierte Inhalt vonWie kann der mehrteilige Grenzfehler beim Hochladen von Dateien mithilfe von Ajax XMLHttpRequest behoben werden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn