我正致力于将照片上传到服务器的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接收文件?
答案 0 :(得分:0)
事实证明这是一个服务器问题,我们的演示服务器已满磁盘,并且不允许从应用上传照片。
我们必须检查服务器中/ tmp文件夹的可用空间,因为在将文件上传到实际目标之前,它将用作临时存储。如果/ tmp文件夹已满或存在任何限制,则不会上传文件。