我有一个更新面板,在更新面板中我有文件上载控件和按钮控件,点击按钮,我需要在updatepanel中的fileupload控件中上传的文件。
确切的情况,我在页面上有8个选项卡,每个选项卡包含太多信息,其中一个选项卡是Attachment,当用户单击Add New Attachment Modal Popup时,Modal包含Updatepanel中的详细信息视图,在详细信息视图中我有fileupload控制,当用户点击保存按钮时, detailsview插入事件被触发,在插入事件中我需要我上传的文件。
请注意,我的页面很重,我不想要完整的回复。
有没有人能解决这个问题?
感谢你的帮助......
答案 0 :(得分:36)
要解决此问题,请参阅以下步骤。
将文件上传到临时位置。
当您点击保存按钮时,系统会将文件移动到其实际位置
请注意。系统将自动从临时位置删除过期文件。
资源
<强>更新强>
差不多一年后,我刚刚找到了一个很好的第三方控制这个问题。这是jQuery的开源插件。它命名为Plupload,允许您使用HTML5,Silverlight,Flash或普通表单上传文件,它提供了一些独特的功能,如上传进度,图像大小调整和分块上传。
答案 1 :(得分:4)
如果没有在客户端上安装合作二进制文件,则无法完成。 AJAX框架没有安全机制来读取文件的内容,因此能够将其发送到服务器。浏览器仅支持将其作为文件输入框中的多部分表单发布。
答案 2 :(得分:1)
问题在于HTML文件上传控件的工作方式,与ASP.net无关,为了文件上传控件的工作,你需要一个完整的表格数据。您只能通过执行实际上传的隐藏iframe中的所有操作来模拟您没有进行完整的回发
答案 3 :(得分:0)
您看到的提供此功能的网站通常使用flash或iframe,以便在iframe中进行回发并提供ajax请求的错觉。
HTH
单稳
答案 4 :(得分:0)
我已经尝试过swfupload(http://swfupload.org/),但请记住,如果您在非IE浏览器中使用表单身份验证,则必须跳过箍。这显然是一个flash bug,并没有在flash 10中修复。我决定不在我们的框架中使用它因为这个bug,但它本来是一个很棒的产品。
答案 5 :(得分:0)
我推荐YUI的上传器小部件。见http://developer.yahoo.com/yui/uploader/
我认为你可以用它来实现你的目标。您的javascript需要在完成上传后从服务器将文件提取回客户端。但页面不会刷新 - 上传是通过flash和隐藏的iframe。向用户显示文件内容的下载将通过ajax。
如果用户没有“批准”上传,则只需再次向服务器发出ajax调用即可删除该文件。