我是ASP.NET的新手,如果有人可以提供帮助,我将不胜感激。 我在视图中输入了文件:
<input type="file" name="Image" id ="filename" />
<input type="submit" value="Submit" id ="sub" />
然后在脚本中,我将它的值发送到我在控制器中的动作
$(function () {
$.post("Home/NewProject", {Image: $("#filename").val() }, function (data) {});
});
在Controller的操作中,我获取文件名,并将其重命名为将存储在我的项目文件夹~/App_Data/uploads
[HttpPost]
public ActionResult NewProject(Project model)
{
if (ModelState.IsValid)
{
bool ok = false;
ViewBag.Message = "Publish your project." ;
//var photo = WebImage.GetImageFromRequest();
var fileName = model.Image;
// store the file inside ~/App_Data/uploads folder
var path = Path.Combine(Server.MapPath("~/App_Data/uploads"), fileName);
model.Image = path;
}
}
但是我怎样才能将此文件保存到文件夹中? 提前谢谢!
答案 0 :(得分:1)
您无法使用jQuery ajax上传文件。如果客户端浏览器支持HTML5文件API,则可以使用XHR2对象实现该功能,如this article
所示。如果没有,您可以使用某些文件上传插件,例如Fine Uploader
,Uploadify或jquery.form plugin
。
以下是jQuery表单插件的示例:
@using (Html.BeginForm("someaction", "somecontroller", FormMethod.Post, new { id = "myForm", enctype = "multipart/form-data" }))
{
<input type="file" name="Image" id ="filename" />
<input type="submit" value="Submit" id ="sub" />
}
然后:
$(function() {
$('#myForm').ajaxForm(function() {
alert('thanks for submitting');
});
});