Итак, я столкнулся с проблемой при использовании
<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!");}
}
});
}