【发布时间】:2018-11-02 11:01:22
【问题描述】:
我正在使用具有多个属性的输入类型文件。我想将文件保存到文件夹中。但我不确定如何附加多个文件。非常感谢您的帮助。
脚本
$(document).on('click', '.btnSubmit', function () {
var data = new FormData();
var files = $('[type="file"]').get(0).files;
if (files.length > 0) {
_.each(files, function (program, idx) {
data.append("file", program);
});
}
_appFun._ajaxcall({
type: "POST",
url: '/application/test/saveFiles',
type: 'POST',
data: data,
cache: false,
contentType: false,
processData: false,
success: function (data) {
//show content
alert('Success!')
}
});
});
C#
[HttpPost]
public ActionResult saveFiles()
{
string directory = AppSettings.Application.uploadFolder;
HttpPostedFileBase file = Request.Files["file"];
if (file != null && file.ContentLength > 0)
{
var fileName = Path.GetFileNameWithoutExtension(file.FileName);
string extension = Path.GetExtension(file.FileName);
var randomId = uniqId();
file.SaveAs(Path.Combine(directory, fileName + randomId + extension));
}
return RedirectToAction("Index");
}
【问题讨论】:
-
您是否尝试在多个输入区域之间循环?
-
data.append("file", program);我认为每个文件都必须有一个唯一的 id。您正在尝试将它们全部命名为“文件”。不过不确定 -
试试这个:
data.append("file[]", program);
标签: c# jquery ajax file-upload