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 />