- 此问题在此处已有答案**:
jQuery Ajax File Upload(27个答案)
17小时前关门了。
重要提示:我收到了一些建议,可以按照this link来解决我的问题。但是,我已经在做这篇文章中建议的事情了。
我正在关注this文章,并尝试使用jQueryAJAX将图像文件上传到服务器。我正在尝试找到一种方法,以获取emp
参数下HomeController
的UploadFileUsingJQueryAJAX
操作方法内部的所有细节
下面是HomeController
中的代码:
public IActionResult UploadFileUsingJQueryAJAX()
{
return View();
}
[HttpPost]
public IActionResult UploadFileUsingJQueryAJAX(Employee emp)
{
return View();
}
下面是UploadFileUsingJQueryAJAX
视图中的代码
@{
ViewData["Title"] = "Upload File Using jQuery AJAX";
}
<h1>@ViewData["Title"]</h1>
<form id="myForm" method="post" enctype="multipart/form-data" asp-action="UploadFileUsingJQueryAJAX" asp-controller="Home">
<table>
<tr>
<td>First name:</td>
<td><input type="text" id="txtFirstName" name="txtFirstName" /></td>
</tr>
<tr>
<td>Last name:</td>
<td><input type="text" id="txtLastName" name="txtLastName" /></td>
</tr>
<tr>
<td>Photo:</td>
<td><input type="file" id="photo" name="postedFile" /></td>
</tr>
<tr>
<td>Photo:</td>
<td><input type="button" value="Submit" onclick="AjaxFormSubmit();" /></td>
</tr>
</table>
</form>
@section Scripts {
<script src="~/js/upload_file_using_jquery_ajax_script.js"></script>
}
以下是位于Models文件夹中的Employee
类。
public class Employee
{
public int EmpId { get; set; }
public string FistName { get; set; }
public string LastName { get; set; }
public IFormFile Photo { get; set; }
}
下面是upload_file_using_jquery_ajax_script.js
中所需的javascript
function AjaxFormSubmit() {
var url = $('#myForm').attr('action');
var firstName = $('#txtFirstName').val();
var lastName = $('#txtLastName').val();
var photo = $('#photo')[0].files[0];
var model = {
url: url,
FirstName: firstName,
LastName: lastName,
Photo: photo
};
SubmitForm(firstName, lastName, photo);
}
function SubmitForm(firstName, lastName, photo) {
$.ajax({
type: 'POST',
url: '/Home/UploadFileUsingJQueryAJAX',
data: {
FirstName: firstName,
LastName: lastName,
Photo: photo
},
dataType: 'json',
cache: false,
beforeSend: function (xhr) {
xhr.setRequestHeader("XSRF-TOKEN",
$('input:hidden[name="__RequestVerificationToken"]').val());
},
success: function (response) {
console.log(response.responseText);
if (response.status == "success") {
//alert("File : " + response.filename + " is uploaded successfully");
console.log(response.responseText);
}
},
error: function (err) {
alert("Error occurs" + err.responseText);
}
});
}
我在浏览器的控制台窗口中执行程序时出现以下错误。
值没有传递到控制器操作方法。经过一些修改后,看起来好像出了问题。控制器操作方法甚至没有命中。
经过一番分析,找到了this article,并相应地更改了代码。但是,没有运气。
已尝试通过访问一些Web资源(如this、this和this)来解决此问题,但没有成功。
有人能帮我解决这个问题吗?事实上,根据要求,我必须上传和读取Excel文件。但我试图在这个程序中上传图像文件,因为我得到几乎所有的文章上传图像只,我想与文章保持一致,同时学习和理解的概念。请让我知道,如果我需要遵循一些额外的步骤,我需要遵循,如果我需要上传和读取Excel文件从控制器的行动方法。
1条答案
按热度按时间hfsqlsce1#
您需要使用
FormData
在 AJAX 中上传文件并添加如下配置:请参考以下代码:
演示:
顺便说一句:您在员工中将
FirstName
写成了FistName
。