【问题标题】:PhoneGap FileTransfer and Server side scriptingPhoneGap FileTransfer 和服务器端脚本
【发布时间】:2012-09-17 00:30:03
【问题描述】:

我整天都被这个问题困扰着,JavaScipt 代码看起来还不错。但是在输出中我得到了这个:

2012-09-25 15:09:57.584 ViviJesolo[13863:c07] File Transfer Finished with response code 200
2012-09-25 15:09:57.586 ViviJesolo[13863:c07] [INFO] Code = 200
2012-09-25 15:09:57.586 ViviJesolo[13863:c07] [INFO] Response = Array%0A(%0A%20%20%20%20%5Bfile%5D%20=%3E%20Array%0A%20%20%20%20%20%20%20%20(%0A%20%20%20%20%20%20%20%20%20%20%20%20%5Bname%5D%20=%3E%20cdv_photo_027.jpg%0A%20%20%20%20%20%20%20%20%20%20%20%20%5Btype%5D%20=%3E%20image/jpg%0A%20%20%20%20%20%20%20%20%20%20%20%20%5Btmp_name%5D%20=%3E%20/tmp/php4i7HAa%0A%20%20%20%20%20%20%20%20%20%20%20%20%5Berror%5D%20=%3E%200%0A%20%20%20%20%20%20%20%20%20%20%20%20%5Bsize%5D%20=%3E%202340%0A%20%20%20%20%20%20%20%20)%0A%0A)%0A
2012-09-25 15:09:57.587 ViviJesolo[13863:c07] [INFO] Sent = 2548

我的服务器端脚本是:

<?php
print_r($_FILES);
$new_image_name = "namethisimage.jpg";
move_uploaded_file($_FILES["file"]["tmp_name"], "/httpdocs/upload/".$new_image_name);
?>

我已经检查了权限并且没问题,但是我看不到上传的文件。 可能是什么问题?

编辑:我正在使用这样的 FileTransfer 对象上传图像:

function uploadPhoto(imageURI) 
{
 var options = new FileUploadOptions(); 
 options.fileKey="file"; 
 options.fileName=imageURI.substr(imageURI.lastIndexOf('/')+1);
 options.mimeType="image/jpg";
 var params = new Object();
 params.headers={'headerParam':'headerValue'};
 options.params = params;
 options.chunkedMode = false;
 var ft = new FileTransfer();
 ft.upload(imageURI, "site.com/upload.php";, win, fail, options); 
} 

【问题讨论】:

  • 对于未定义的问题,我很抱歉。我看不到上传的文件。输出码为200,表示成功但图片不存在。
  • 您从哪里以及如何上传图片?
  • 我正在使用 FileTransfer 对象上传图片:function uploadPhoto(imageURI) { var options = new FileUploadOptions(); options.fileKey="file"; options.fileName=imageURI.substr(imageURI.lastIndexOf('/')+1); options.mimeType="image/jpg"; var params = new Object(); params.headers={'headerParam':'headerValue'}; options.params = params; options.chunkedMode = false; var ft = new FileTransfer(); ft.upload(imageURI, "http://www.site.com/upload.php", win, fail, options); }

标签: php javascript ios cordova file-transfer


【解决方案1】:

可能是您的目标文件路径错误,请尝试将您的路径附加到文档根目录,如下所示:

$new_image_name = "namethisimage.jpg";
$destination = $_SERVER['DOCUMENT_ROOT'] . "/httpdocs/upload/".$new_image_name;
move_uploaded_file($_FILES["file"]["tmp_name"], $destination);

【讨论】:

  • 试过了,还是没有。如果没有移动,上传的图像应该留在 tmp 文件夹中吗?
  • 你是如何检查权限的?您可以在“httpdocs”文件夹中粘贴“ls -l”的输出吗?
  • 使用 ftp 客户端。我没有对服务器的终端访问权限。
  • 服务器上没有文件的迹象,一切都在客户端成功完成。奇怪...
  • 当您在 ftp 客户端的“httpdocs”文件夹中时,“上传”条目会显示哪些权限和所有者?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-03-02
  • 1970-01-01
  • 2015-04-27
  • 2014-06-20
相关资源
最近更新 更多