在AJAX更新面板中上传文件而没有完整的回发

Muh*_*tar 20 asp.net ajax updatepanel file-upload asynchronous-postback

我有一个更新面板,在更新面板中我有文件上载控件和按钮控件,单击按钮,我需要在updatepanel中的fileupload控件中上传的文件.

确切的情况,我有第8个标签,每个标签包含了太多的信息,其中一个选项卡是附件,当添加呈现出新的附件模式弹出的用户点击,莫代尔包含的UpdatePanel和我都FileUpload控件在DetailsView DetailsView控件,当用户点击保存按钮,detailsview插入事件触发,在插入事件中我需要我上传的文件.
请注意,我的页面很重,我不想要完整的postBack.


有没有人有这个问题的解决方案?

感谢您的帮助......

Sou*_*ter 36

要解决此问题,请参阅以下步骤.

  1. 将ajax-upload添加到您的详细信息视图中.
    • 基于iframe的上传者,如资源#1.
    • 基于Silverlight和基于Flash的上传器.我喜欢这种技术,因为它不需要任何服务器端脚本来显示当前上载状态.但是在HTML5中,您可以在不使用任何Web浏览器插件的情况下创建它.
    • 像Resource#2这样的商业上传者.使用隐藏的iframe进行上传.
  2. 将文件上传到临时位置.

    • 系统响应临时位置.接下来,客户端以详细形式将临时位置保存在隐藏输入中.
    • 使用session_id保留临时位置.您可以将其存储在数据库或Session变量中,具体取决于您的框架.
  3. 单击"保存"按钮时,系统会将文件移动到其实际位置

注意.系统将自动从临时位置删除过期文件.

资源

  1. 使用实时进度条的ASP.NET文件上载
  2. 像GMail(商业)的ASP.NET文件上传

更新

差不多一年后,我刚刚找到了一个很好的第三方控制这个问题.这是jQuery的开源插件.它命名为Plupload,允许您使用HTML5,Silverlight,Flash或普通表单上传文件,它提供了一些独特的功能,如上传进度,图像大小调整和分块上传.

您可以点击此处尝试测试Plupload.