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 />
我正在尝试使用 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 />