Phonegap cordova android 4.4 FileTransfer上传SSL无效

时间:2014-05-12 10:38:54

标签: android file cordova upload transfer

在cordova for file中遇到了filetransfer上传的问题...

我想上传任何类型的文件..意味着图片,视频,声音......

问题是,我不知道如何获取文件的类型/结尾(例如.jpg),因为使用options.fileName = imageURI.substr(imageURI.lastIndexOf('/')+ 1 );我只得到位置,但没有给定类型/结尾的文件名.. 我当然可以添加+“.jpg”,但这对于除图像之外的所有其他文件都没有帮助。 这是当我从照相馆选择一个文件时...当我从SD卡中选择一个文件时没有任何反应 - >必须是目的地uri的问题

这是我的代码:

navigator.camera.getPicture(uploadPhotoorfile, function(message) {

}, { quality: 50,
        destinationType: navigator.camera.DestinationType.FILE_URI,
        sourceType: navigator.camera.PictureSourceType.PHOTOLIBRARY,
        mediaType: navigator.camera.MediaType.ALLMEDIA  
    });


function uploadPhotoorfile(imageURI) {


var options = new FileUploadOptions();
options.headers = {
    Connection: "close"
};

var options = new FileUploadOptions();
options.chunkedMode = false;
options.fileKey="file";
options.fileName=imageURI.substr(imageURI.lastIndexOf('/')+1);
var params = new Object();
options.params = params;


var ft = new FileTransfer();

ft.upload(imageURI, encodeURI("https://domain....com/doupload.php"), win, fail, options, true); 

}



function win(r) {
console.log("Code = " + r.responseCode);
console.log("Response = " + r.response);
console.log("Sent = " + r.bytesSent);
alert("Success");
}

function fail(error) {
alert("Failed" + error.code);
}

1 个答案:

答案 0 :(得分:0)

在PHP代码中,确保将MIME类型作为标题

返回
<?php
  // open the file in a binary mode
  $name = './images/xyz.png';
  $fp = fopen($name, 'rb');

  // send the right headers
  header("Content-Type: image/png");
  header("Content-Length: " . filesize($name));

  // dump the picture and stop the script
  fpassthru($fp);
  exit;
 ?>

如果客户端需要扩展名为.jpeg,请将您的URL设为'https://domain....com/myfile.jpg,然后在服务器上执行URL重写,将URL映射到您的PHP页面。