ホームページ  >  記事  >  ウェブフロントエンド  >  Ajax XMLHttpRequest を使用したファイルアップロードでのマルチパート境界エラーを解決する方法

Ajax XMLHttpRequest を使用したファイルアップロードでのマルチパート境界エラーを解決する方法

DDD
DDDオリジナル
2024-10-18 16:42:08303ブラウズ

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

Ajax XMLHttpRequest を使用したファイルのアップロード: マルチパート境界エラーの解決

XMLHttpRequest を使用してファイルを転送しようとすると、次のエラーが発生する可能性があります:

The request was rejected because no multipart boundary was found.

このエラーは、コードにマルチパート フォーム データを処理するための正しいアプローチが欠けていることを示します。この問題を修正するには、次の 2 つの主要な領域に対処しましょう。

  1. XHR ファイル プロパティ: xhr.file = file; という行。は余分です。ファイル オブジェクトはこの方法で割り当てるべきではありません。
  2. ファイル送信: xhr.send(file) の変更;ファイルを効果的に転送できません。代わりに、FormData オブジェクトを使用してマルチパート/フォームデータ ペイロードを構築します。
var formData = new FormData();
formData.append("thefile", file);
xhr.send(formData);

FormData を利用すると、PHP 変数 $_FILES['thefile'] を介してファイルにアクセスできるようになります。

このトピックの詳細なガイダンスについては、必ず MDC および Mozilla Hack のドキュメントとデモを参照してください。

前の間違った提案:

前の回答では、次のように誤って述べられています。 xhr.send(ファイル);生の投稿データを送信します。ファイルは送信されますが、サーバー上で適切に解析されるように FormData を使用することが不可欠です。したがって、上記の修正は、目的の機能を実現するために非常に重要です。

以上がAjax XMLHttpRequest を使用したファイルアップロードでのマルチパート境界エラーを解決する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。