2

Valums File Uploader を使用して、XHR を使用してファイルをアップロードしています。私が使用しているスクリプトは、ライブ サーバーではうまく機能しますが、ローカル サーバーでは失敗します。関連するコードは次のとおりです。

    $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);
    chmod($path, 0644);

問題は、ローカル サーバーでは $realSize が空であるのに、ライブ サーバーでは値があるということです。そのため、ローカルサーバーではサイズチェックで壊れます。サーバー構成の問題だと思いますが、何を探すべきか正確にはわかりません。誰かが私を正しい方向に向けることができますか?

4

1 に答える 1

2

犯人を見つけました。一時フォルダーに対する権限で書き込みが許可されていないため、tmpfile() は一時ファイルを作成できませんでした。sys_get_temp_dir()Made this directory writableを使用して一時フォルダーの場所を見つけ、すべてが再びGOになりました!

于 2012-08-24T10:13:37.757 に答える