用c#控制器引导文件输入
本文关键字:文件 输入 控制器 | 更新日期: 2023-09-27 18:14:41
我试图使用Bootstrap FileInput与c#控制器。无论我做什么,我似乎只能让控制器接受1个文件(即使选择多个文件)
我的HTML:
<form enctype="multipart/form-data" method="post">
<label>Upload Photo </label>
<input id="FilesInput" name="FilesInput" type="file" multiple>
</form>
我的Javascript:
$('#FilesInput').fileinput({
language: 'eN',
uploadUrl: '/members/UploadSerivcePhoto',
allowedFileExtensions: ['jpg', 'png', 'gif'],
});
和MVC c#控制器
[HttpPost]
public void UploadSerivcePhoto(IEnumerable<HttpPostedFileBase> FilesInput)
{
// only 1 file ever gets put in FilesInput.
}
我认为这与异步上传有关,这个插件似乎有一个默认的选项来异步并行发布文件,所以你每次发布一个文件。
尝试将uploadAsync属性设置为false
$('#FilesInput').fileinput({
language: 'eN',
uploadAsync: 'false',
uploadUrl: '/members/UploadSerivcePhoto',
allowedFileExtensions: ['jpg', 'png', 'gif'],
});这里是Bootstrap Fileinput的一些官方文档。异步上传
我也有同样的问题。检查@Michael提到的Request.Files
属性,它应该包含几个文件。检查时,还应该过滤掉名称为空的
List<HttpPostedFileBase> allFiles = Enumerable.Range(0, Request.Files.Count)
.Select(x => Request.Files[x])
.Where(x => !string.IsNullOrEmpty(x.FileName))
.ToList();