2016-02-16 11:57
浏览 139


I'm working on cordova project that uploads photos to server. While testing this for android, success callback is called but file not uploaded to server. Destination folder in server is present with necessary permission.

Following is the Javascript section

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);

In server PHP code is

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';

On checking $_FILES['myphoto']['error'] returns 7

Server has following setting regarding file upload

file_uploads - On

memory_limit - 128M

post_max_size - 64M

upload_max_filesize - 100M

Should I added any additional headers in PHP script to receive the file from app?

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

1条回答 默认 最新

  • dongzhong9055
    dongzhong9055 2016-02-26 06:29

    It turned out to be a server issue, our demo server was disk full and it didn't allow uploading photos from app.

    We will have to check the space available for /tmp folder in server as this will be used as a temporary storage before uploading the file to actual destination. Files will not upload if /tmp folder is full or if there is any limitation.

    点赞 评论