【问题标题】:issue when uploading multiple images - phonegap上传多张图片时的问题 - phonegap
【发布时间】:2015-08-19 21:22:38
【问题描述】:

我正在做一个 phonegap 项目,这里我正在将多张图片上传到服务器,如下所示,我得到了success 两张图片上传的状态,但是当我在后端检查时它只显示一张图片已上传(第二张)。请检查上传代码是否有错误,并帮助我。

  var options = new FileUploadOptions();
                options.fileKey="uploadfile";
                options.fileName=randomNumber.toString().concat(fileNameSelected);
                options.mimeType="image/jpeg";
                options.chunkedMode = false;

                                var ft = new FileTransfer();
                              // first upload
                                ft.upload(i1,'http://xx.xx.xx/mobapp/api/upload-image', 
                                function (r){ 
                                   console.log("ft.upload one"+JSON.stringify(r));
                                   //  second upload
                                   ft.upload(i2,'http:/xxx.xx.xx/mobapp/api/upload-image',
                                   function(r){console.log("ft.upload two"+JSON.stringify(r));},
                                   function(error){alert("image upload two failed");},options);
                                },function(error)
                                {alert("image upload failed");},options);

谢谢。

【问题讨论】:

    标签: jquery file-upload cordova file-transfer


    【解决方案1】:

    1) 勾选这篇文章,在你的图片标签上添加多张图片

    Upload multiple images to the api - phonegap

    2) 在提交按钮上获取图像 src

    在您的提交按钮上添加

    if($('#vImage1').attr('src')){
       /* Image Upload1 Start */
         imagefile = $('#vImage1').attr('src');
         uploadPhoto(imagefile, "vImage1");
      /* Image Upload End */
    }
    if($('#vImage2').attr('src')){
        /* Image Upload2 Start */
         imagefile = $('#vImage2').attr('src');
         uploadPhoto(imageURI, "vImage2");         
        /* Image Upload End */
     }
    
     function uploadPhoto(imageURI, vImage) {
      var imagefile = imageURI; 
       /* Image Upload Start */
      var ft = new FileTransfer();                     
      var options = new FileUploadOptions();                      
      options.fileKey= vImage;                      
      options.fileName=imagefile.substr(imagefile.lastIndexOf('/')+1);
      options.mimeType="image/jpeg";  
      var params = new Object();
      params.value1 = "test";
      params.value2 = "param";                       
      options.params = params;
      options.chunkedMode = false;                       
      ft.upload(imagefile, your_service_url, win, fail, options);   
     }
    

    使用 Cordova 处理多个同时上传

    Simultaneous uploads with Cordova

    More....

    【讨论】:

    • 如果要上传十张图片那么我需要打十个服务器调用吗?这样对吗? .我认为这是上传十张图片调用十次的最糟糕的方法。是否有可能在单个服务器调用中上传十张图片?
    • 嗨,我看过你的教程,但是如果想上传 10 张图片,那么它会进行 10 个 http 调用。我想在单个 http 调用中上传所有 10 张图片
    • 我认为 Cordova 仍然不提供这种功能,可能在将来可能。如果您发现任何其他解决方案,请告诉我。
    • 好的,当然...感谢您的回复 :-)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-08-11
    • 2021-09-29
    • 2017-01-29
    • 2012-09-08
    • 1970-01-01
    • 2018-06-04
    相关资源
    最近更新 更多