ASP.NET请求 - 我可以从客户端上创建的动态控件中获取已发布的文件吗?

时间:2009-04-29 16:44:18

标签: asp.net javascript file httpwebrequest request

我有一个带有一些自定义JavaScript的网页控件。 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.Files
  • 的Request.Form
  • Request.Form.Keys
  • Request.InputStream

但我找不到内容。我相信客户端正确地提交了这些数据,但无法确定服务器对原始请求信息的处理方式(如果这甚至暴露了)。

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

由于

1 个答案:

答案 0 :(得分:2)

您应该在upload元素中添加唯一名称,以便从Request.Form集合中获取它。

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

编辑:我尝试了id和名称attibutes,有了名字,你可以通过

获取内容
Request.Form["file01"]

此外,如果您应将以下属性添加到表单元素中。这允许您通过Request.Files [“file01”]:

获取文件内容
enctype="multipart/form-data"