gpt4 book ai didi

c# - 如何将多个文件与其他表单字段一起上传,ASP.NET MVC

转载 作者:太空狗 更新时间:2023-10-30 01:21:08 26 4
gpt4 key购买 nike

所以我在一个页面上只有一个表单。有几个文本输入字段等。现在还有一个 jQuery 文件上传控件,您可以在其中选择多个文件。我现在遇到的问题是,我要求用户先上传文件(使用 jQuery 控件),然后我将这些文件保存在 session 状态中,直到常规表单发布其余的表单字段。然后我从 Session 中提取之前上传的文件并做我需要做的事情。

所以基本上填写表单需要两个单独的 POST 操作返回到服务器。文件,然后是剩余的表单域。

我认为必须有更好的方法让用户选择他/她的文件,但在用户提交主表单以发布所有其他字段之前不发布任何内容。我已经阅读了该站点上的几篇文章,但找不到解决此特定问题的文章。

非常感谢任何建议/帮助。

最佳答案

我相信您可以使用 Uploadify 来做到这一点.您需要查看两个选项。首先,设置auto to false以防止立即加载选定的文件。二、使用formdata option将您的其他表单字段与有效负载一起发送。

然后您将调用 upload method当用户提交表单时,上传队列中的每个文件并一次性发送表单数据。

服务器端部分:

您可能会将表单提交到 ASPX 文件或 ASHX 处理程序。我更喜欢使用 ASHX 处理器,因为它们更轻便。两者都允许您访问 HttpContextHttpRequest 对象。首先,您需要检查 context.Request.Files.Count 以确保文件已发布:

if (context.Request.Files.Count > 0) // We have files uploaded
{
var file = context.Request.Files[0]; // First file, but there could be others
// You can call file.SaveAs() to save the file, or file.InputString to access a stream
}

获取其他表单字段应该同样简单:

var formfield = context.Request["MyFormField"]; // Some form field

您还可以将结果写回客户端,例如任何结果错误的 JSON 编码描述:

context.Response.Write(response); // Anything you write here gets passed in to onUploadSuccess

无论如何,我认为这应该让你开始了!

关于c# - 如何将多个文件与其他表单字段一起上传,ASP.NET MVC,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16657960/

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