私は最終的にはテキストファイルを扱うように見える以外は、私の非同期ファイルのアップロードを動作させました。ファイルのアップロード302?
テキストファイルをアップロードすると、そのファイルが動作して保存されます。イメージをアップロードすると、応答が302のステータスを返すというファイルが作成され、私のpublic_htmlのルートディレクトリに送信されます。
ファイルサイズに関係すると思われますが、テキストファイルをイメージよりも大きくして、うまくいきました。
トラブルシューティングを開始する場所がわからないため、以下でPHP関連のスニペットを配置します。
PHP
$fn = (isset($_SERVER['HTTP_X_FILENAME']) ? $_SERVER['HTTP_X_FILENAME']:false);
echo $fn;
try{
file_put_contents("upload/".$fn, file_get_contents("php://input"));
//echo file_get_contents("upload/".$fn);
}catch(exception $e){
echo $e->getMessage();
}
JS
function UploadFile(file){
var xhr = new XMLHttpRequest();
//on the below if
//xhr.upload: returns a XMLHttpRequestUpload Object, I believe just to check if it's supported in broswer
if (xhr.upload){
xhr.open("POST","http://domain.com/absolutepath/what.php",true);
xhr.setRequestHeader("X-FILENAME",file.name);
xhr.onreadystatechange = function(){
if(xhr.status == 200 && xhr.readyState == 4){
callback(xhr.responseText);
}
}
xhr.send(file);
}else{
alert("Sorry, don't think this is supported in your browser.");
}
}
私が設定されなければならないリクエストヘッダはありますか?私は変更する必要があるphp.iniの何かですか?私の最大ポストサイズは32MBだと思います。
[ファイルアップローダリターンエラーの可能性の重複:あなたが管理者である場合は、Apacheの設定では、クライアント、または編集している場合は、ホスティングアカウントのためのあなたの
.htaccess
ファイルにこのコードを追加し、この問題を回避するには302](http://stackoverflow.com/questions/12029743/files-uploader-return-error-302) –