6

真正令人困惑的是,当我使用手机摄像头拍摄图像时,我使用FileTransfer.moveTo它并根据需要将图像发送到我 SD 卡上的指定文件夹。我还保留了一个图像对象列表localStorage,看起来像这样:

[
Object
ean: "42208556"
image: "file:///storage/sdcard0/PhotoscanPhotos/d51b5b77-aab1-9947-096d-b0a92dfb87eafoto.jpg"
timestamp: 1396441761000
__proto__: Object
etc etc

作为我的应用程序的一部分,我使用与 src 属性相同的 image[i].image 来将图像动态添加到列表中,并且效果很好。但是,使用相同的参数 forFileTransfer.upload会给我上述错误。

我的函数几乎是API 文档(Cordova 3.1)的复制品。代码如下:

function uploadImagesAsJpegs(imageObject) {
    var options = new FileUploadOptions();
    options.fileKey = "file";
    options.fileName=imageObject.image.substr(imageObject.image.lastIndexOf('/')+1);
    //alert(options.fileName);//debugging ............we're happy with this
    options.mimeType="image/jpeg";
    options.chunkedMode = true;

    var serverUrl = http://172.17.7.112/mylocalserver;


    var params = {};
    params.value1 = ean;
    params.value2 = imageObject.timestamp;

    options.params = params;

    var fileTransfer = new FileTransfer();

    //alert(encodeURI(serverURL));//debugging  ............we're happy with this
    //alert("image to upload is: " + imageObject.image);//debugging............we're happy with this
    fileTransfer.upload(imageObject.image, encodeURI(serverURL), onUploadSuccess, onUploadFail, options);
}
4

3 回答 3

8

我相信设置options.chunkedMode = false;可以解决文件上传过程中的大多数问题,不妨试一试。

于 2014-04-04T13:04:08.663 回答
3

我会尝试的是:1.使用独占模式进行上传(最后是真的)

fileTransfer.upload(imageObject.image, encodeURI(serverURL), onUploadSuccess, onUploadFail, Options, true);

  1. 尝试先将数据移动到设备的本地存储,而不是使用 SD 卡存储。也许这是一个许可案例,您只能从手机本地存储上传。

  2. 确保图像没有在另一个图像中挂起作为图像源,并且您对数据具有完全访问权限。也许读写是需要独占的。

于 2014-04-04T13:04:33.380 回答
1

FileTransferError.FILE_NOT_FOUND_ERR服务器端脚本是错误的……鉴于明显的错误消息,我自然应该明白这一点。很抱歉浪费了大家的时间,并感谢您的努力。

于 2014-04-14T12:32:13.800 回答