Valums File Uploaderプラグインを使用しています。このプラグインは Chrome では動作しますが、Firefox では問題があります。問題を切り分けましたが、何が起こっているのか推測できません...
問題はここにあります:
function save($path) {
$input = fopen("php://input", "r");
$temp = tmpfile();
$realSize = stream_copy_to_stream($input, $temp);
fclose($input);
if ($realSize != $this->getSize()){
return false;
}
$target = fopen($path, "w");
fseek($temp, 0, SEEK_SET);
stream_copy_to_stream($temp, $target);
fclose($target);
return true;
}
この PHP の一部はサーバーの一部であり、アップロードされたファイルを取得して$path
. 問題は、$input
データが含まれていないことです。空です。これを PHP ハンドラ ファイルの最初の行に入れても、次のようになります。
$postdata = file_get_contents("php://input");
文字列は$postdata
空です。Chrome ではなく、Firefox でのみ。クライアント側に行くと、Firebug は Firefox がファイルを送信していることを示しています。
しかし、PHP のドキュメントを見ると、「php://input is not available with enctype="multipart/form-data"」と記載されているため、問題が なのかFirefox
、php://input
それともmultipart/form-data
(これなしでファイルを送信する方法はわかりません)。どうしたの?