SWFUpload跨域上传
SWFUpload 是一款开源的JavaScript库,用于在网页中实现文件上传功能,特别是大文件的上传。它利用了Adobe Flash技术来实现异步文件上传,从而避免了浏览器刷新页面的问题。在中提到的“SWFUpload跨域上传”,指的是通过SWFUpload组件实现在不同源之间进行文件上传,即跨域资源共享(CORS)。 中描述的场景是,用户在`fxb.abc.com`上进行操作,但实际的图片上传发生在`lh.abc.com`上。这种跨域上传的关键在于服务器端的配置以及前端代码的正确设置。 你需要确保所有必要的SWFUpload组件文件已经正确引入,包括`fileprogress.js`、`handlers.js`、`swfupload.js`、`swfupload.queue.js`以及两个SWF文件。这些文件可以在指定的下载地址找到,这里使用的是2.2.0版本,该版本支持Flash 9和10,但不支持Flash 8。 在前端HTML页面,如`index.jsp`中,你需要设置`SWFUpload`实例,配置上传的URL(`upload_url`)为实际接收图片的服务器地址,例如`http://lh.abc.com/struts2-ibatis/upload.do`。同时,还可以通过`post_params`传递额外的参数,如“name”等。此外,还要设置文件大小限制、文件类型、上传次数等参数,以满足应用的需求。 在事件处理函数中,有多个关键的回调函数,例如: 1. `file_dialog_start_handler`: 文件选择对话框开启时的处理函数。 2. `file_queued_handler`: 文件被加入队列时的处理函数。 3. `file_queue_error_handler`: 文件队列错误时的处理函数。 4. `file_dialog_complete_handler`: 文件选择对话框关闭时的处理函数。 5. `upload_start_handler`: 文件开始上传时的处理函数。 6. `upload_progress_handler`: 上传进度更新时的处理函数。 7. `upload_error_handler`: 上传过程中发生错误时的处理函数。 8. `upload_success_handler`: 文件上传成功时的处理函数,此时可以获取服务器返回的信息,比如图片名、路径等。 9. `upload_complete_handler`: 文件上传完成后的处理函数。 服务器端需要配置允许跨域请求,这通常涉及到设置HTTP响应头中的`Access-Control-Allow-Origin`字段。在Java环境中,如果使用Struts2框架,你可能需要在Action类或Filter中添加对应的CORS配置。 SWFUpload跨域上传涉及到前端JavaScript和后端服务器的协作,前端负责与用户的交互和文件上传的控制,后端则处理文件的接收和返回结果。通过这样的方式,你可以实现用户在不同源之间的文件上传,同时获取并处理上传的结果。
- 粉丝: 8
- 资源: 3
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
- 1
- 2
前往页