1

iOSアプリからサーバーにビデオを送信していますが、PHPエラーコード3-'アップロードされたファイルは部分的にしかアップロードされていません。' ただし、これはたまにしか発生しておらず、まだパターンを見つけていません。ASIFormDataRequestを使用してファイルを送信しています。

ASIFormDataRequest *request = [ASIFormDataRequest requestWithURL:urlUpload];
request.shouldContinueWhenAppEntersBackground = YES;
[request setFile:@"filename"
         withExtension:@".mov"]
         withFileName:@"filename.mov"
         andContentType:@"video/quicktime"
         forKey:@"Filedata"];
request setDelegate:self;
[request setUploadProgressDelegate:self;
[request setShowAccurateProgress:YES];
[request startAsynchronous];

プロセスの早い段階でurlUploadが定義されています。

私のphpスクリプトは次のようになります。

if (isset($_FILES['Filedata'])) {
    if ($_FILES['Filedata']['error']) {
        echo "File Error";
    } else {
        //Handle the upload file
    }
} else {
    echo "No File";
}

$ _FILES ['Filedata'] ['error']に関連するエラーは3であり、PHPは部分的にアップロードされたファイルであり、$ _ FILES['Filedata']['size']は0です。

何が起こっているのかについて何か考えはありますか?または、さらに良いことに、完全なファイルを確実に取得するためのソリューションはありますか?

4

1 に答える 1

1

よくわかりませんが、スクリプトが終了するとアップロードされたファイルがなくなったため、サーバー上の別の場所にコピーする必要があります。

if (file_exists("upload/" . $_FILES["file"]["name"]))
  {
  echo $_FILES["file"]["name"] . " already exists. ";
  }
else
  {
  copy($_FILES["file"]["tmp_name"],
  "upload/" . $_FILES["file"]["name"]);
  echo "Stored in: " . "upload/" . $_FILES["file"]["name"];
  }

move_uploaded_file()を使用することを好む人もいれば、その関数でコピーエラーが発生する人もいます。コピーは一般的に機能します。

残念ながら、これは返信が遅いので、まだ役立つことを願っています

于 2012-05-04T09:54:25.593 に答える