2012-02-23 6 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

관련 문제