我想用MVC和jQuery做一个文件上传,但是我的参数为空。在我的jQuery中,我获取表单数据,并给它分配一个变量,然后将它提交给ActionResult。我的参数为空,我不确定我是否正确地传递了数据。
HTML
<table>
<tr>
<td><img src="@Url.Content("~/AMTImages/UserAvatar.png")" width="64" height="64" style="border: thin solid" /></td>
<td></td>
<td></td>
<td>
<form enctype="multipart/form-data" id="imageUploadForm">
<table>
<tr>
<td>@Html.LabelFor(m => m.DisplayName, "Display Name: ")</td>
<td style="padding-left: 10px;">@Html.TextBoxFor(m => m.DisplayName)</td>
</tr>
<tr>
<td>@Html.LabelFor(m => m.UserImage, "User Image: ")</td>
<td style="padding-left: 10px; float: right;">@Html.TextBoxFor(m => m.UserImage, new { type = "file", accept = "image/*" })</td>
</tr>
</table>
</form>
</td>
<td>
<table style="display:none;">
<tr>
<td>
<progress></progress>
</td>
</tr>
</table>
</td>
</tr>
</table>
脚本
$(':file').change(function () {
var file = this.files[0];
$.ajax({
url: '@Url.Action("UploadImage", "User")', //Server script to process data
type: 'POST',
data: file,
beforeSend: function() {
},
success: function () {
},
error: function () {
},
processData: false,
contentType: file.type
});
});
行动结果
public ActionResult UploadImage(HttpPostedFileBase file)
{
if (file != null && file.ContentLength > 0)
try
{
string path = Path.Combine(Server.MapPath("~/Images"),
Path.GetFileName(file.FileName));
file.SaveAs(path);
ViewBag.Message = "File uploaded successfully";
}
catch (Exception ex)
{
ViewBag.Message = "ERROR:" + ex.Message.ToString();
}
else
{
ViewBag.Message = "You have not specified a file.";
}
return View();
}
您的UploadImage需要一个文件POST参数。您在前端代码中的哪里指定它?看不到您传递它的位置。
尝试将httpostedfilebase文件更改为httpostedfilebase用户图像
问题内容: [HttpPost] [Route(“/getter/validatecookie”)] public async Task GetRankings([FromBody] string cookie) { int world = 5; ApiGetter getter = new ApiGetter(_config, cookie); if (!await IsValidCookie(
问题内容: 我正在使用某些文件,并且想知道是否存在一种检查文件是否为图像的方法? 问题答案: 这对我来说很好。希望我能帮上忙
我是新来的百里香,我有以下问题。我想在html模板内调用一个java方法,但该方法需要一个参数,但问题是,无论我为参数传递什么,结果总是空的。 类别。html: 分类控制器:
我使用Spring Rest 4(spring-boot-starter-data-jpa,spring-boot-starter-data-rest,spring-boot-starter-security)和CrudRepository来访问我的Org数据。GET和PUT工作正常,但我的帖子总是从浏览器中看到一个空对象。 下面是存储库: 下面是org的一个删节版本: 所以我没有对PUT或POS
问题内容: 在下面的代码中,输出为 串 如果我使用类型为参数的方法删除该方法,则输出为 目的 我知道当参数类型不完全匹配时方法的重载行为如何,但是我不明白如何将 null 视为和/或参数。 这有什么解释? 问题答案: 根据Java规范 15.12.2.5节,它始终使用最特定的方法。 简介相当具体: 如果多个成员方法既可访问又可应用于方法调用,则必须选择一个成员方法来为运行时方法分派提供描述符。Ja