2012-02-23 10 views
1

iOSアプリからサーバーにビデオを送信していて、PHPエラーコード3を受信しました - 'アップロードされたファイルが一部しかアップロードされませんでした'。しかし、これは何度かしか起こっておらず、私はまだそのパターンを見つけていません。私はファイルを送信するためにASIFormDataRequestを使用しています。iOS上で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"; 
} 
PHPが部分的にアップロードされたファイルであると述べ、および$ _FILES [ 'FILEDATA'] [ 'エラー']に関連したエラーが3である

、$ _FILES [」 Filedata '] [' size ']は0です。

何が起こっているのでしょうか?それとも、ファイル全体を確実に取得するソリューションですか?

答えて

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()を使用することを好みますが、その一部ではその機能でコピーエラーが発生しています。コピーは一般的に動作します。

これは、このような返事が遅れている、あまりにも悪いが、それはまだ私が本当の問題は、インターネット接続を介してファイルの一部を失っていた発見サービス

+1

のものとすることができる願っています。小さなチャンクでファイルをアップロードする方法を書きました。チャンクが失われた場合は、そのチャンクを再送信してください。各チャンクで私は私のサーバー上に作成したファイルに追加しました。 – adamame

関連する問題