Flow Js - 将文件上传为数组

Flow Js - upload files as array

我正在尝试使用 FlowJS angular 插件来实现上传功能,我需要稍微调整一下。 我将需要所有类型的文件

我正在使用 ASP.NET MVC。

.config(['flowFactoryProvider', function (flowFactoryProvider) {
flowFactoryProvider.defaults = {
 target: '',
 permanentErrors: [500, 501],
 maxChunkRetries: 1,
 chunkRetryInterval: 5000,
 simultaneousUploads: 1
};

我的输入按钮

<input type="file" flow-btn />

我的上传按钮

  <input type="button"  ng-click="uploadFiles($flow)">

和函数

 $scope.uploadme = function (flows) {
    flows.upload();
 });

我的 mvc 控制器

  [HttpPost]
    public string UploadFile(HttpPostedFileBase file)
    {
        int fileSizeInBytes = file.ContentLength;
        MemoryStream target = new MemoryStream();
        file.InputStream.CopyTo(target);
        byte[] data = target.ToArray();
        return "";
    }

这很好用,但是当我上传多个文件时,每次一个文件都会点击控制器。我需要找到一种方法将所有文件一次发送到控制器,比如

    public string UploadFile(HttpPostedFileBase[] file)
    {
    }

有什么方法可以实现吗?

您的控制器不需要 UploadFile(HttpPostedFileBase[] file) 之类的东西。

只需创建控制器

public string UploadFile()
{
  var httpRequest = HttpContext.Current.Request;
  //httpRequest.Files.Count -number of files
  foreach (string file in httpRequest.Files)
  {
      var postedFile = httpRequest.Files[file];
      using (var binaryReader = new BinaryReader(postedFile.InputStream))
      {
         //Your file
         string req = System.Text.Encoding.UTF8.GetString(binaryReader.ReadBytes(postedFile.ContentLength));

      }
}
}

multiple 属性添加到您的 input

<input type="file" multiple="multiple" flow-btn />