PUTメソッドで大きなファイルをアップロードする

私はhtml5ドラッグアンドドロップ機能を持つページを持っていて、ファイルはPUTメソッドを使ってアップロードしています。大きな画像ファイルをアップロードすると、画像の一部のみがサーバに保存されます。次のPHPコードを使用してファイルを保存する

    $putdata = fopen("php://input", "r");
    $fp = fopen("/tmp/myputfile" . microtime() . ".jpg", "w");

    while ($data = fread($putdata, 1024))
      fwrite($fp, $data);

    fclose($fp);
    fclose($putdata);

何かこれに間違っている?助けてください

0

2 答え

私は、ファイル全体がまだ完全にアップロードしようとするとアップロードされていないと思いますので、時々あなたにゼロバイトを読み込ませて返します。しかし、まだデータがアップロードされている可能性があります。

たぶんfeof関数を使って読み込むデータがあるかどうかを調べることができますか?

「http://www.php.net/manual/en/function.feof.php」を参照してください。

2
追加された

Windowsの場合は、fopen()のmode-parameterに "b"を追加する必要があります。 BTWのマニュアルを参照してください。コード移植性のためにparamを追加するのは良い考えです...

0
追加された
PHP - 日本のコミュニティ [ja]
PHP - 日本のコミュニティ [ja]
4 参加者の

このグループではPHPについて話します。 パートナー:kotaeta.com