加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

Swfupload实现多文件上传

发布时间:2020-12-15 19:59:27 所属栏目:百科 来源:网络整理
导读:需求和解决方案 传统的 html 文件域控件只支持单文件上传,用过网盘的同志都知道,有些时候是必须要使用多文件上传的。比如网上的相册上传照片。 这种需求可以由 swfupload 实现 ,115 网盘就是使用的这种实现。 演示效果 http://demo.swfupload.org/v220/

需求和解决方案


传统的html文件域控件只支持单文件上传,用过网盘的同志都知道,有些时候是必须要使用多文件上传的。比如网上的相册上传照片。

这种需求可以由swfupload实现,115网盘就是使用的这种实现。

演示效果http://demo.swfupload.org/v220/

下载地址http://code.google.com/p/swfupload/


Swf简介


SWFUpload最初是由Vinterwebb.se开发的一个客户端的上传工具.?它结合了FLASHJavaScript的功能,以提供一种超越了传统的浏览器中<input?type="file"?/>标签提供的文件上传功能。


实现


上传页面:

[html] view plain copy
  1. <%@?page?language="java"?import="java.util.*"?pageEncoding="UTF-8"%>??
  2. <%??
  3. String?path?=?request.getContextPath();??
  4. String?basePath?=?request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";??
  5. %>??
  6. <!DOCTYPE?HTML?PUBLIC?"-//W3C//DTD?HTML?4.01?Transitional//EN">??
  7. <html>??
  8. ??<head>??
  9. ????<link?href="<%=basePath%>css/default.css"?rel="stylesheet"?type="text/css"?/>??
  10. ????<script?type="text/javascript"?src="<%=basePath%>js/swfupload.js"></script>??
  11. ????<script?type="text/javascript"?src="<%=basePath%>js/swfupload.queue.js"></script>??
  12. ????<script?type="text/javascript"?src="<%=basePath%>js/fileprogress.js"></script>??
  13. ????<script?type="text/javascript"?src="<%=basePath%>js/handlers.js"></script>??
  14. ?????
  15. ?????
  16. ???<script?type="text/javascript">??
  17. var?upload1,?upload2;??
  18. window.onload?=?function()?{??
  19. //在window的载入时初始化swfupload对象??
  20. upload1?=?new?SWFUpload({??
  21. //提交路径??
  22. upload_url:?"upload.action",??
  23. //向后台传递额外的参数??
  24. //提交到服务器的参数信息,这样就添加了一个param参数,值是uploadParams在服务器端用request.getParameter(“param”)就可以拿到值??
  25. post_params:?{"name"?:?"kaobian"},??
  26. //上传文件的名称??
  27. file_post_name:?"file",??
  28. file_size_limit?:?"102400",?//?100MB??
  29. file_types?:?"*.*",??
  30. file_types_description?:?"All?Files",??
  31. file_upload_limit?:?"10",??
  32. file_queue_limit?:?"0",??
  33. //?事件处理??
  34. file_dialog_start_handler?:?fileDialogStart,??
  35. file_queued_handler?:?fileQueued,??
  36. file_queue_error_handler?:?fileQueueError,??
  37. file_dialog_complete_handler?:?fileDialogComplete,??
  38. upload_start_handler?:?uploadStart,??
  39. upload_progress_handler?:?uploadProgress,??
  40. upload_error_handler?:?uploadError,??
  41. upload_success_handler?:?uploadSuccess,??
  42. upload_complete_handler?:?uploadComplete,??
  43. //?按钮的处理??
  44. button_image_url?:?"images/XPButtonUploadText_61x22.png",??
  45. button_placeholder_id?:?"spanButtonPlaceholder1",??
  46. button_width:?61,??
  47. button_height:?22,??
  48. //?Flash?Settings??
  49. flash_url?:?"js/swfupload.swf",??
  50. custom_settings?:?{??
  51. progressTarget?:?"fsUploadProgress1",??
  52. cancelButtonId?:?"btnCancel1"??
  53. },??
  54. //?Debug?Settings??
  55. debug:?false??
  56. });??
  57. ?????}??
  58. ??????
  59. </script>??
  60. ??</head>??
  61. ????
  62. ??<body>??
  63. ??<div?id="content">??
  64. ????
  65. ????<form?action="upload.action"?method="post"?name="thisform"?enctype="multipart/form-data">??
  66. <table>??
  67. <tr?valign="top">??
  68. <td>??
  69. <div>??
  70. <div?class="fieldset?flash"?id="fsUploadProgress1">??
  71. <span?class="legend">文件上传</span>??
  72. </div>??
  73. <div?style="padding-left:?5px;">??
  74. <span?id="spanButtonPlaceholder1"></span>??
  75. <input?id="btnCancel1"?type="button"?value="Cancel?Uploads"?onclick="cancelQueue(upload1);"?disabled="disabled"?style="margin-left:?2px;?height:?22px;?font-size:?8pt;"?/>??
  76. <br?/>??
  77. </div>??
  78. </div>??
  79. </td>??
  80. </tr>??
  81. </table>??
  82. ????</form>??
  83. ????</div>??
  84. ??</body>??
  85. </html>??



这个文件的重点是:



1.引用文件,这里面引用的js和swf一个都不能少。

2.swfupload对象的初始化,这些js语句配置了一个swfupload对象,理解配置是一个重点。

使用swfupload实现多文件上传的思路是在客户端通过选众多个文件,生成一个文件上传队列,这个队列中的每一个文件就相当于一个传统的文件域。所以在服务器端是没有任何变化的。


完整项目下载


Swfupload?+?struts2多文件上传案例下载

http://download.csdn.net/detail/yanwushu/4404705

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读