• 使用swfupload小经验


    SWFUpload是一个客户端文件上传工具,如果传统的文件上传方式不能满足你的需求,那么可以试试看这个咯。

    swfupload的功能:

    • 在文件选择对话框中能够进行文件多选(当然还可以设置成单选)
    • 可以设置上传对话框中显示的文件类型和说明
    • 页面无刷新的上传(使用ajax方式post文件数据)
    • 提供上传进度的事件回调,实时显示上传进度(这个比较cool,无需频繁调用服务端代码获取上传进度哦)
    • 良好的浏览器兼容性
    • 采用了命名空间以兼容其它JS的库 (例如 jQuery, Prototype, 等等)
    • 对FLASH8和FLASH9播放器的支持

    这里是swfupload的中文使用帮助,感谢译者的辛勤工作。

    我第一次使用swfupload的时候,发现它和mootools的1.10版本有冲突:当IE7刷新或者关闭的时候会导致swfupload组件脚本出错,换用最新的mootools之后正常。

    另外一个问题就是session,很多时候接收文件上传数据的代码需要根据当前session来进行权限处理。在IE中没什么问题,在firefox中会无法获取session,原因应该是flash处理cookie的方式有所不同,导致在firefox中swfupload无法post当前用户的cookie信息到服务端。解决方式也比较简单,就是自己获取cookie信息随着文件一并上传(flash9支持)即可。

    asp.net中可以直接引用swfupload提供的global.asax来处理session信息,你只需要在创建swfupload对象的时候添加如下代码即可:

     1         var swfu;
     2         function initswfu()
     3         {
     4             swfu = new SWFUpload({
     5                 upload_url : "<%=Page.ResolveClientUrl("~/swfupload/upload.aspx")%>",
     6                 flash_url : "<%=Page.ResolveClientUrl("~/swfupload/swfupload_f9.swf")%>",
     7                 file_size_limit : "204800",
     8                 file_types : "*.rar;*.zip",
     9                 file_types_description : "打包文件",
    10                 post_params : {
    11                     "ASPSESSID" : "<%=Session.SessionID %>",
    12                     "AUTHID" : "<%=Request.Cookies[FormsAuthentication.FormsCookieName].Value%>"
    13                     },
    14 

    其中ASPSESSID是用户的sessionid,AUTHID是FormsAuthentication认证信息,如果你不用FormsAuthentication也可以去掉12行,当然如果你需要cookie中的其他自定义信息,就在这里添加并需要修改global.asax了。

  • 相关阅读:
    【数据结构】堆栈
    【数据结构】线性表
    【算法】最大子列和问题
    【算法】复杂度的渐近表示
    【算法】什么是好的算法
    【算法】什么是算法
    【数据结构】什么是数据结构
    MySQL数据备份脚本
    二进制安装MySQL-5.7.28
    搭建zabbix+grafana监控
  • 原文地址:https://www.cnblogs.com/xwing/p/1292174.html
Copyright © 2020-2023  润新知