gpt4 book ai didi

asp.net-mvc - 在 ASP.NET MVC 中上传多个图像 + 文本字段

转载 作者:行者123 更新时间:2023-12-04 18:00:00 25 4
gpt4 key购买 nike

我对 ASP.net MVC 很陌生,所以请在你的回答中尽可能地描述:)

让我简化我正在尝试做的事情。想象一下,我有一个表格,您想在其中输入有关汽车的一些信息。这些字段可能是:Make、Model、Year、Image1、Image2。

表格底部有一个“保存”按钮。关联的 Controller 方法会将 Image1 和 Image2 保存到磁盘,获取它们的文件名并将它们与汽车模​​型相关联,然后将它们保存到数据库中。

有任何想法吗?

谢谢你们!

编辑

winob0t让我在那里度过了大部分时间。唯一突出的问题如下: Image1 和 Image2 不是必填字段,所以我现在可以保存 0,1 或 2 个图像;但如果用户只上传 1 张图片,我无法知道它是来自 imageUpload1 还是 imageUpload2。

再次,任何帮助表示赞赏!

最佳答案

在您的 Controller 中,您可以通过以下方式访问上传的文件:

    if(Request.Files.Count > 0 && Request.Files[0].ContentLength > 0) {
HttpPostedFileBase postFile = Request.Files.Get(0);
string filename = GenerateUniqueFileName(postFile.FileName);
postFile.SaveAs(server.MapPath(FileDirectoryPath + filename));
}

protected virtual string GenerateUniqueFileName(string filename) {

// get the extension
string ext = Path.GetExtension(filename);
string newFileName = "";

// generate filename, until it's a unique filename
bool unique = false;

do {
Random r = new Random();
newFileName = Path.GetFileNameWithoutExtension(filename) + "_" + r.Next().ToString() + ext;
unique = !File.Exists(FileDirectoryPath + newFileName);
} while(!unique);
return newFileName;
}

文本字段将像往常一样到达您的 Controller 操作,即 Request.Form[...]。请注意,您还需要将表单上的 enctype 设置为“multipart/form-data”。听起来您对 ASP.NET MVC 的了解足以完成其余的工作。另请注意,您可以按如下方式在 aspx View 中声明表单标记,但如果您愿意,也可以使用更传统的方法。
<% using(Html.BeginForm<FooController>(c => c.Submit(), FormMethod.Post, new { enctype = "multipart/form-data", @id = formId, @class = "submitItem" })) { %> 

<% } %>

关于asp.net-mvc - 在 ASP.NET MVC 中上传多个图像 + 文本字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/604640/

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