我有一个带有一些自定义 JavaScript 的 Web 控件。JavaScript 使用类似于以下的代码在客户端动态创建新的文件上传控件:

var newFileUpload = document.createElement('input');
newFileUpload.type = 'file';
container.appendChild(newFileUpload); // where container is a div

它存在于 ASP.NET 表单中,encType 设置为 multipart/form-data。我将在页面上有 1 - n 个控件(当然,限制在合理的数量内)。

我现在想在 ASP.NET 应用程序中捕获上传的文件。由于上述方法,我知道我无法像从 FileUpload 控件(不幸的是我无法使用)那样捕获它们。还有其他方法可以捕获上传的文件吗?

我研究了许多领域,包括:

  • 请求文件
  • 申请表
  • 请求.表单.密钥
  • 请求输入流

但我一直没能找到内容。我相信客户端正确提交了这些数据,但无法确定服务器如何处理原始请求信息(如果甚至公开)。

有人对我可以进一步探索的领域有任何建议吗?

谢谢

有帮助吗?

解决方案

你应该添加一个 独特的名字 到您的上传元素以从 Request.Form 集合中获取它。

var newFileUpload = document.createElement('input');
newFileUpload.type = 'file';
//newFileUpload.id = 'file01';
newFileUpload.name = 'file01';
container.appendChild(newFileUpload);

编辑 : 我尝试了 id 和 name 属性,带有名称,您可以通过以下方式获取内容

Request.Form["file01"]

另外,如果您应该将以下属性添加到表单元素中。这允许您通过 Request.Files["file01"] 获取文件内容:

enctype="multipart/form-data"
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top