cordova-plugin-file-transfer不上传文件到服务器

时间:2016-02-16 11:57:16

标签: php android cordova cordova-plugins

我正致力于将照片上传到服务器的cordova项目。在为Android测试这个时,会调用成功回调但是文件没有上传到服务器。 服务器中的目标文件夹具有必要的权限。

以下是Javascript部分

var options = new FileUploadOptions();
options.fileKey  = "myphoto";
options.fileName = filetoupload.substr(filetoupload.lastIndexOf('/')+1);
options.mimeType = "image/jpeg";
options.chunkedMode = false;
options.headers = {
    Connection: "close"
};
var ft = new FileTransfer();
ft.upload(filetoupload, encodeURI(websrvs_base_url), win, fail, options);

在服务器PHP代码中

<?php
header("Access-Control-Allow-Origin: *");
header("Access-Control-Allow-Methods: GET, POST, PUT, OPTIONS");
header("content-type: application/json; charset=utf-8");

if($_FILES['myphoto']['size'] > 0) {
    $path = $ROOT_PATH . "mypics/";
    $tmpname1 = $_FILES['myphoto']['tmp_name'];
    $ptname1 = $_FILES['myphoto']['name'];
    move_uploaded_file($tmpname1, $path . $ptname11);

    echo 'success';
}

在检查$_FILES['myphoto']['error']时返回7

服务器有关于文件上传的以下设置

file_uploads - On

memory_limit - 128M

post_max_size - 64M

upload_max_filesize - 100M

我是否应该在PHP脚本中添加任何其他标头以从app接收文件?

1 个答案:

答案 0 :(得分:0)

事实证明这是一个服务器问题,我们的演示服务器已满磁盘,并且不允许从应用上传照片。

我们必须检查服务器中/ tmp文件夹的可用空间,因为在将文件上传到实际目标之前,它将用作临时存储。如果/ tmp文件夹已满或存在任何限制,则不会上传文件。