Я пытаюсь реализовать на своем сайте функцию загрузки файлов, которая сохраняет файл на моем SQL сервере. Я создаю FormData и добавляю к нему различные ключи, и все они отображаются в контроллере, за исключением файла, который я добавил к нему, который отображается как null.
The javascript:
var files = document.getElementById("docUploader").files;
for (var i = 0; i < totalFiles; i++) {
addFilesData.append("FilesContent", files[i]);
}
addFilesData.append("Action", "i");
addFilesData.append("ID", 0);
addFilesData.append("EventID", model.eventID);
var myURL = ("exampleURL");
$.ajax({
url: myURL,
type: "POST",
data: addFilesData,
async: false,
processData: false,
contentType: false,
success: function (response) {}
});
Контроллер:
public IEnumerable<object[]> Post()
{
var httpRequest = HttpContext.Current.Request;
List<object[]> reader = new List<object[]>();
string connectionString = WebConfigurationManager.ConnectionStrings["ExampleString"].ConnectionString.ToString();
using (var conn = new SqlConnection(connectionString))
{
using (var command = new SqlCommand("setAdditionalFiles", conn))
{
command.CommandType = CommandType.StoredProcedure;
var testFilesContent = httpRequest.Params["FilesContent"];
var testID = httpRequest.Params["ID"];
var testEvent = httpRequest.Params["EventID"];
var testAction = httpRequest.Params["Action"];
//.....so on so forth
}
}
}
Я убедился, что на самом деле есть файл, добавленный к formData перед вызовом ajax, и в самом контроллере он видит все остальные пары ключей, которые я предоставил. Это просто FilesContent с нулевым значением.