Fileupload PostedFile始终为null

时间:2015-12-03 07:40:13

标签: c# asp.net file-upload

这让我疯了。在我的页面上,我有几个FileUploads在后​​面的代码上创建并附加到几个不同的div。用户选择文件后,单击“确定”,应将其添加到数据库并重定向到其他位置。奇怪的是,当我检查postedFile属性时,它始终为空。我已经尝试了很多我想法的东西。我在页面加载时将此Page.Form.Attributes.Add("enctype", "multipart/form-data");设置为不回发。我已将相同的属性直接设置到母版页表单上。试过检查request.files并且它是空的。 Fileuploads不在en UpdatePanel中。我知道文件在回发时丢失了,但是唯一发生的回发是由他们必须点击上传到数据库上的相同按钮引起的。我发布了我的代码,但没什么特别的。

服务器端:

LinkedList<FileUpload> _docs = new LinkedList<FileUpload>();

var files = Request.Files;

foreach (var d in docs)
{
      _docs.AddLast((FileUpload)docsDiv.FindControl(d.ID));
}

docs是一个包含所有已创建的文件上载的列表。我只用它作为查找。 _docs是包含所选文件的实际fileUploads的files。当我调试_docs时,我发现每个项目都有postfile null并且文件为false,即使只有回帖就是那个ok按钮。当我调试df<-structure(list(District = structure(c(1L, 1L, 1L, 2L, 2L, 2L), .Label = c("District - Purba Champaran", "District - Sheohar"), class = "factor"), X = c(12, 86, 56, 13, 45, 13)), .Names = c("District", "X"), class = "data.frame", row.names = c(NA, -6L)) 时,它也是空的。

旁注:我身边还有更多的编码,但在编辑时它的验证,查询和重新填充文本框的方式却大不相同。这部分是至关重要的,它只在一个地方完成,我发布的是第一步。一旦它被修复,其他任何东西都不会给我任何问题。

请帮助并谢谢

2 个答案:

答案 0 :(得分:1)

注意到我有一些updatepanel,即使没有任何嵌套在其中的fileUploads,仍然会导致问题。将所有updatePanel替换为Page.DataBind()我需要更新和完成的地方。我知道,效率不高,但我的时间很短,而且必须这样做。

答案 1 :(得分:0)

要将FileUpload控件与UpdatePanel一起使用,您可以使用此处所述的技巧:http://www.codeproject.com/Articles/16945/Simple-AJAX-File-Upload

为我工作......