Flow Js - загрузка файлов в виде массива

Я пытаюсь использовать угловой плагин FlowJS для загрузки, и мне нужно немного его настроить. Мне придется файлы всех типов

Я использую 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)
    {
    }

Любые способы, которыми я могу достичь этого?

2 ответа

Решение

Вам не нужно что-то вроде 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 />
Другие вопросы по тегам