【问题标题】:How to upload multiple files in one request?如何在一个请求中上传多个文件?
【发布时间】:2018-01-24 22:38:06
【问题描述】:

我要上传多张图片到服务器。

这是 DataURL 的数组。

items: {
    img_url : string
}[] = [];

我发现ionic原生文件传输只能上传一个文件。

如何上传多个文件?

【问题讨论】:

  • 为什么不为每个文件多次调用upload?
  • 我正在尝试使用发布“多部分/表单”数据。你有解决办法吗?
  • 我遇到了同样的问题,一个 post API 调用可以获取多个图像、.doc 和 .pdf 文件。你知道如何处理吗?

标签: javascript node.js angular typescript ionic3


【解决方案1】:
import { FileTransfer, FileUploadOptions, FileTransferObject } from '@ionic-native/file-transfer';

 uploadAllImage()
  {
    const fileTransfer:FileTransferObject = this.transfer.create();

    var i;

    var filetype;
    var itemtype;

    for(i=0; i<this.photos.length; i++)
    {

      //GET TYPE OF ITEM
      filetype = this.itemtypes[i];

      //GET MIME TYPE from itemtype
      switch(filetype)
      {
        case 'audio':
        {
          itemtype = 'audio/amr';
          break;
        }
        case 'video':
        {
          itemtype = 'video/quicktime';
          break;
        }
        case 'image':
        {
          itemtype = 'image/jpeg';
          break;
        }
        default:
        {
          return;
        }
      }


      //SET NAME
      var name ='pinglun_' + filetype;
      name = name + '#';
      name = name + this.photosName[i];

      console.log(name);

      //SET MIMETYPE
      let option: FileUploadOptions = {
        fileKey:'file',
        mimeType:itemtype,
        httpMethod:'POST',
        fileName:name
      };

      console.log('itemtype', itemtype);

      //DETERMINE FILE DEPENDING ON MIMETYPE
      if(filetype == 'image')
      {
        fileTransfer.upload(this.photos[i], encodeURI(localStorage.getItem('GlobalIP')+"/upload"),option).then((result)=>{

        },function(error)
        {

        });
      }
      else
      {

        console.log('FURL:' + this.fileurls[i]);

        fileTransfer.upload(this.fileurls[i], encodeURI(localStorage.getItem('GlobalIP')+"/upload"),option).then((result)=>{

        },function(error)
        {

        });
      }

    }
  }

【讨论】:

  • 所以没有办法上传多张图片而不对每张图片的同一个端点进行多次请求吗?
  • 所以你多次调用api,如果需要参数你会怎么做?
  • 我可以像 ajax hit 一样发送 dala 吗?
  • 我们能解释一下吗?
  • 我不认为您一次上传多个文件。您所做的就是通过保持循环一个接一个地上传文件。所以我认为这不是这个问题的有效答案。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-03-30
  • 2015-03-17
  • 2017-11-20
  • 1970-01-01
  • 1970-01-01
  • 2012-05-31
相关资源
最近更新 更多