Asp.net mvc HttpPostedFileBase为空mvc
我一直在试图弄清楚为什么我的HttpPostedFileBase返回null。我看了一下其他的答案,也听了一些关于如何上传图片的教程。问题是我仍然只是从HttpPostedFileBase和Request.Files中获取null。我有什么遗漏吗 我的控制器Asp.net mvc HttpPostedFileBase为空mvc,asp.net-mvc,image-uploading,httppostedfilebase,Asp.net Mvc,Image Uploading,Httppostedfilebase,我一直在试图弄清楚为什么我的HttpPostedFileBase返回null。我看了一下其他的答案,也听了一些关于如何上传图片的教程。问题是我仍然只是从HttpPostedFileBase和Request.Files中获取null。我有什么遗漏吗 我的控制器 [HttpPost] public ActionResult Save(HttpPostedFileBase PreviewImageFile) { //some code// i
[HttpPost]
public ActionResult Save(HttpPostedFileBase PreviewImageFile)
{
//some code//
if (PreviewImageFile.ContentLength > 0)
{
try
{
var uploadedImage = new Bitmap(PreviewImageFile.InputStream);
var width = 368;
var height = 305;
var uploadedImageThumb = ImageHelper.CreateThumbnail(uploadedImage, width, height);
uploadedImageThumb.Save("/path" + id + ".png", ImageFormat.Png);
uploadedImageThumb.Dispose();
uploadedImage.Dispose();
}
catch
{
}
}
//some code here//
return Json(new { success = true });
}
从视图看我的形状
<% using (Html.BeginForm("Save", "SaveThemes", FormMethod.Post, new { enctype = "multipart/form-data", @id = "TestForm" }))
{ %>
<label for="PreviewImageFile">Perview Image</label>
<input type="file" id="PreviewImageFile" name="PreviewImageFile" size="40" value="" />
//some code here//
<button type="submit" >save</button>
<% } %>
透视图像
//这里有一些代码//
拯救
您显示的代码示例没有问题。请提供有关正在进行的HTTP请求的更多详细信息。使用Fiddler或webbrowser的开发者工具栏捕获实际请求并在此处显示。HTTP头+HTTP POST正文有效负载。您是否有一些javascript插件可能会劫持表单提交处理程序?请调试您的应用程序,并在发布文件时检查Request.Files.Count。如果有效,您可以使用Request.Files[0]您在ActionMethod末尾使用返回JSON()
,并在表单上添加id元素,这让我相信您正在尝试使用AJAX方法上载文件。如果没有一些特殊的插件,AJAX文件上传就无法工作*(是的,有一些HTML5方法,但通常是不允许的)。您是否使用jQuery或其他JavaScript来发布表单?我使用jQuery中的.submit()
来提交表单,并使用一些JavaScript来验证我接收的输入。@Themonkey180-是的,您不能使用AJAX提交(意思是使用jQuery)带有文件上载的表单。您可以使用jQuery对其进行验证,但实际的表单提交需要是发送到服务器的完整页面。