因此,我在使用
时遇到了问题<input type="file" multiple id="fileUpload" name="photos[]" accept="image/*" />
它没有封装在标签内。
每次选择图像时,它都不会更新,只会刷新。 由于某种原因,我每次选择图像时都会注意到它尝试执行POST方法,并且停留为“未选择文件”。
这是我在服务器端捕获图像的方法,请注意,仅当我选择文件然后刷新页面并单击“保存”按钮时,此方法才有效。
[HttpPost]
public JsonResult SaveTickets(string gridData)
{
if (Request.Files.Count > 0)
{
//logic
}
}
我的方法有效,但是我不知道输入type="file"
是否需要刷新页面来加载图片?
自提出要求以来的其他代码,这是我的ajax方法,用于将数据发送到服务器。
function saveTickets() {
var gridData = $("#TicketsGrid").data("kendoGrid").dataSource.data();
var formData = new FormData();
var files = $("#fileUpload").prop("files");
formData.append('gridData', JSON.stringify(gridData));
for (var i = 0; i < files.length; i++) {
var file = files[i];
// Check the file type.
if (!file.type.match('image.*')) {
continue;
}
// Add the file to the request.
formData.append('photos[]', file, file.name);
}
$.ajax({
url: "@(Url.Action("SaveTickets", "Ticket"))",
type: "POST",
data: formData,
dataType: "formData",
processData: false,
contentType: false,
success: function (json) {
if (json.Flag == "emptylist") { alert("No tickets to add."); }
else if (json.Flag == "insertion_success") { alert(json.TicketCount + " tickets inserted successfuly!"); cleanTicketsGrid(); lockEventsGrid(false); }
else if (json.Flag == "insertion_failure") { alert(json.TicketCount + " tickets failed to insert!");}
}
});
}