【发布时间】:2016-02-16 11:57:16
【问题描述】:
我正在开发将照片上传到服务器的 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 脚本中添加任何额外的标头以从应用程序接收文件吗?
【问题讨论】:
-
首先,确保 PHP 配置为允许文件上传。在“php.ini”文件中,搜索 file_uploads 指令,并将其设置为 On
-
@Naitik PHP 是的,它有必要的设置,请参阅我的编辑
-
示例与我在帖子中的示例相似
标签: php android cordova cordova-plugins