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 回答