Apple は、iWork ファイルの管理方法を変更しました。ファイルは、アプリによく似たコンテンツを含むバンドルになりました。多数のファイルを受け取ることができるアップロード フォームを作成する必要があります。主に画像ですが、いくつかのページと番号も含まれています。ドロップされたファイルの数は最大 15 個で、PHP を使用してサーバー側でソートされます。それはすでに構築されています。
私の質問はです。
Pages ファイルをアップロードするにはどうすればよいですか? これまでのところ、事前に構築された多くのソリューションを試してきました。
私もゼロから構築してきました。「dataTransfer」は気に入らず、ディレクトリだと言っています。FileReader はそれを見ますが、次のことをしようとすると
for (var i = 0; i < items.length; ++i) {
var entry = items[i].type;
if (entry == "image/png" || entry.type == "image/jpg" || entry.type == "image/jpeg" ) {
formData.append("file" + i , items[i]);
} else {
var fileReader = new FileReader();
var binary = fileReader.readAsBinaryString(items[i]);
var blob = new Blob([binary], {type: blob});
formData.append("file" + i , blob);
undefined を返し、次のエラーをポップします"failed to load resource blob:http://localhost/<RANDOM BLOB STRING HERE>"
BLOB サーバー側をデコードすると、当然のことながら、サイズが 0Kb のファイルが取得されるため、決して実行されません。
私は本当にすべてのファイルをサーバー上のフォルダーに入れたいだけです。ファイルごとにサーバー要求を送信する必要がある場合でも、非効率的であってもかまいません。
base64エンコードも試しましたが、同様の結果が得られました。XHR.response の「blob」メソッドも試しました。いずれの場合も、ファイルを取得できないか、破損したバージョンを取得します。
これを攻撃する最善の方法は何ですか?