gpt4 book ai didi

c# - HttpPostedFileBase 总是返回 null 并且图像不会被发布

转载 作者:行者123 更新时间:2023-11-30 13:27:07 25 4
gpt4 key购买 nike

您好,我在发布图片时似乎遇到了问题。我在 stackoverflow 和其他讨论该主题的论坛上检查了很多问题,但似乎没有一个提供我需要的答案。这是我的代码:

@using( Html.BeginForm("Create", "ProductManager", FormMethod.Post, new{enctype = "multipart/form-data"})){

<ul>
....
<li>
@Html.LabelFor(model => model.ProductImagePath , "Avatar")
<input type="file" id="ProductAvatar" name="ProductAvatar" />
@Html.HiddenFor(model => model.ProductImagePath , new { id = "AvatarHiddenField"})
</li>
<li>
@Html.LabelFor(model => model.ProductName , "Product Name")
@Html.EditorFor(model => model.ProductName)
</li>
.....
</ul>
}
[HttpPost]
public ActionResult Create( FormCollection collection , HttpPostedFileBase avatar)
{
string file = collection["ProductAvatar"];
var avatars = avatar;
}

从调试中我发现 HttpPostedFileBase 返回 null。集合中的其他表单数据已成功发布。只有图像没有发布。我似乎无法从 FormCollection 或 HttpPostedFileBase 访问 ProductAvatar,它似乎是甚至没有发布

我该如何解决这个问题?

最佳答案

您必须将 HttpPostedFile 参数的名称更改为表单上输入文件的名称,或者您也可以使用 Request.Files 并获取通过输入文件的 name 属性,尝试这样的事情:

[HttpPost]
public ActionResult Create(FormCollection collection)
{
HttpPostedFileBase file = Request.Files["ProductAvatar"];

if (file.ContentLength > 0)
{
file.SaveAs(/* path */);
}

// othyer tasks

return RedirectToAction("Index");
}

name 属性是浏览器在提交时将在 post/get 表单上发送的内容。

关于c# - HttpPostedFileBase 总是返回 null 并且图像不会被发布,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14226408/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com