今天研究解决了使用swfupload实现图片批量上传的功能~~
?
不废话,自然是有一个上传页(default.aspx),一个处理页(upload.aspx),页面
?
Default.aspx
+ expand source
view plain
copy to clipboard
print
?
- <%@?Page?Language="C#"?AutoEventWireup="true"?CodeFile="AddPhotos.aspx.cs"?Inherits="SPACE_AddPhotos"?%>??
-
<!DOCTYPE?HTML?PUBLIC?"-//W3C//DTD?HTML?4.01?Transitional//EN">????
- <html>????
- <head>????
- <title>批量相片上传</title>????
-
<meta?http-equiv="Content-Type"?content="text/html;?charset=UTF-8">????
-
<link?href="../Control/SwfUpload/default.css"?mce_href="Control/SwfUpload/default.css"?rel="stylesheet"?type="text/css"?/>??
-
<mce:script?language="javascript"><!--??
-
var?swfobject=function(){var?X="undefined",P="object",a="visibility:visible",e="visibility:hidden",B="Shockwave?Flash",h="ShockwaveFlash.ShockwaveFlash",V="application/x-shockwave-flash",K="SWFObjectExprInst",G=window,g=document,N=navigator,f=[],H=[],Q=null,L=null,S=false,C=false;var?Y=function(){var?l=typeof?g.getElementById!=X&&typeof?g.getElementsByTagName!=X&&typeof?g.createElement!=X&&typeof?g.appendChild!=X&&typeof?g.replaceChild!=X&&typeof?g.removeChild!=X&&typeof?g.cloneNode!=X,t=[0,0],n=null;if(typeof?N.plugins!=X&&typeof?N.plugins[B]==P){n=N.plugins[B].description;if(n){n=n.replace(/^.*/s+(/S+/s+/S+$)/,"$1");t[0]=parseInt(n.replace(/^(.*)/..*$/,"$1"),10);t[1]=parseInt(n.replace(/^.*/.(.*)/s.*$/,10);t[2]=/r/.test(n)?parseInt(n.replace(/^.*r(.*)$/,10):0}}else{if(typeof?G.ActiveXObject!=X){var?o=null,s=false;try{o=new?ActiveXObject(h+".7")}catch(k){try{o=new?ActiveXObject(h+".6");t=[6,21];o.AllowScriptAccess="always"}catch(k){if(t[0]==6){s=true}}if(!s){try{o=new?ActiveXObject(h)}catch(k){}}}if(!s&&o){try{n=o.GetVariable("$version");if(n){n=n.split("?")[1].split(",");t=[parseInt(n[0],10),parseInt(n[1],parseInt(n[2],10)]}}catch(k){}}}}var?v=N.userAgent.toLowerCase(),j=N.platform.toLowerCase(),r=/webkit/.test(v)?parseFloat(v.replace(/^.*webkit??
- ??
- ??????
- var?SWFUpload;??
-
if?(typeof(SWFUpload)?===?"function")?{??
- ????SWFUpload.onload?=?function?()?{};??
- ??????
- ????swfobject.addDomLoadEvent(function?()?{??
-
????????if?(typeof(SWFUpload.onload)?===?"function")?{??
- ????????????SWFUpload.onload.call(window);??
- ????????}??
- ????});??
- ??????
- ????SWFUpload.prototype.initSettings?=?(function?(oldInitSettings)?{??
-
????????return?function?()?{??
-
????????????if?(typeof(oldInitSettings)?===?"function")?{??
-
????????????????oldInitSettings.call(this);??
- ????????????}??
- ??
-
????????????this.ensureDefault?=?function?(settingName,?defaultValue)?{??
-
????????????????this.settings[settingName]?=?(this.settings[settingName]?==?undefined)???defaultValue?:?this.settings[settingName];??
- ????????????};??
- ??
-
????????????this.ensureDefault("minimum_flash_version",?"9.0.28");??
-
????????????this.ensureDefault("swfupload_load_failed_handler",?null);??
- ??
-
????????????delete?this.ensureDefault;??
- ??
- ????????};??
- ????})(SWFUpload.prototype.initSettings);??
- ??
- ??
- ????SWFUpload.prototype.loadFlash?=?function?(oldLoadFlash)?{??
-
????????return?function?()?{??
-
????????????var?hasFlash?=?swfobject.hasFlashPlayerVersion(this.settings.minimum_flash_version);??
- ??????????????
-
????????????if?(hasFlash)?{??
-
????????????????this.queueEvent("swfupload_pre_load_handler");??
-
????????????????if?(typeof(oldLoadFlash)?===?"function")?{??
-
????????????????????oldLoadFlash.call(this);??
- ????????????????}??
-
????????????}?else?{??
-
????????????????this.queueEvent("swfupload_load_failed_handler");??
- ????????????}??
- ????????};??
- ??????????
- ????}(SWFUpload.prototype.loadFlash);??
- ??????????????
- ????SWFUpload.prototype.displayDebugInfo?=?function?(oldDisplayDebugInfo)?{??
-
????????return?function?()?{??
-
????????????if?(typeof(oldDisplayDebugInfo)?===?"function")?{??
-
????????????????oldDisplayDebugInfo.call(this);??
- ????????????}??
- ??????????????
-
????????????this.debug(??
- ????????????????[??
-
????????????????????"SWFUpload.SWFObject?Plugin?settings:",?"/n",??
-
????????????????????"/t",?"minimum_flash_version:??????????????????????",?this.settings.minimum_flash_version,??
-
????????????????????"/t",?"swfupload_load_failed_handler?assigned:?????",?(typeof(this.settings.swfupload_load_failed_handler)?===?"function").toString(),??
-
????????????????].join("")??
- ????????????);??
- ????????};????
- ????}(SWFUpload.prototype.displayDebugInfo);??
- }??
- ??
- ??
- function?SubmitCheck()??
- {??
-
????var?albumID?=?"<%=this.dllAlbumType.SelectedValue%>";??
-
????if(?albumID?==?"0"?)??
- ????{??
-
????????alert("请选择一个相册");??
-
????????return?false;??
- ????}??
-
????????return?true;??
- }??
-
??
- ??
-
<mce:script?type="text/javascript"?src="../Control/SwfUpload/swfupload.js"?mce_src="Control/SwfUpload/swfupload.js"></mce:script>????
-
<mce:script?type="text/javascript"?src="../Control/SwfUpload/handlers.js"?mce_src="Control/SwfUpload/handlers.js"></mce:script>????
-
<mce:script?type="text/javascript"?src="../Control/SwfUpload/swfupload.swfobject.js"?mce_src="Control/SwfUpload/swfupload.swfobject.js"></mce:script>????
-
<mce:script?type="text/javascript"?src="../Control/SwfUpload/swfupload.queue.js"?mce_src="Control/SwfUpload/swfupload.queue.js"></mce:script>????
-
<mce:script?type="text/javascript"?src="../Control/SwfUpload/fileprogress.js"?mce_src="Control/SwfUpload/fileprogress.js"></mce:script>????
-
<mce:script?type="text/javascript"><!--??
- ????
- var?swfu;?????
- ????
- SWFUpload.onload?=?function?()?{?????
- ????var?settings?=?{?????
-
????????flash_url?:?"../Control/SwfUpload/swfupload.swf",?????
-
????????upload_url:?"./upload.aspx",?????
- ????????post_params:?{?????
-
????????"albumID"?:?"<%=this.dllAlbumType.SelectedValue%>"??
- ????????},?????
-
????????file_size_limit?:?"<%=maxSize?%>",?????
-
????????file_types?:?"<%=allowFileType?%>",?????
-
????????file_types_description?:?"<%=allowFileType?%>",?????
- ????????file_upload_limit?:?100,?????
- ????????file_queue_limit?:?0,?????
- ????????custom_settings?:?{?????
-
????????????progressTarget?:?"fsUploadProgress",?????
-
????????????cancelButtonId?:?"btnCancel",?????
-
????????????uploadButtonId?:?"btnUpload",?????
-
????????????myFileListTarget?:?"idFileList"?????
- ????????},?????
-
????????debug:?false,?????
-
????????auto_upload:false,?????
- ????
-
???????? ??
-
????????button_image_url?:?"../Control/SwfUpload/images/XPButtonUploadText_61x22.png",?????
-
????????button_placeholder_id?:?"spanButtonPlaceholder",?????
- ????????button_width:?61,?????
- ????????button_height:?22,?????
- ????
-
??????????
- ????????swfupload_loaded_handler?:?swfUploadLoaded,?????
- ????????file_queued_handler?:?fileQueued,?????
- ????????file_queue_error_handler?:?fileQueueError,?????
- ????????file_dialog_complete_handler?:?fileDialogComplete,?????
- ????????upload_start_handler?:?uploadStart,?????
- ????????upload_progress_handler?:?uploadProgress,?????
- ????????upload_error_handler?:?uploadError,?????
- ????????upload_success_handler?:?uploadSuccess,?????
- ????????upload_complete_handler?:?uploadComplete,?????
-
????????queue_complete_handler?:?queueComplete,???
- ?????????????
-
??????????
-
????????minimum_flash_version?:?"9.0.28",?????
- ????????swfupload_pre_load_handler?:?swfUploadPreLoad,?????
- ????????swfupload_load_failed_handler?:?swfUploadLoadFailed????
- ??}??
-
????swfu?=?new?SWFUpload(settings);?????
- ???
- }??
-
??
- ??
- </head>????
-
<body?bgcolor="#FCFCFC"?topmargin="0px"?leftmargin="10px"?rightmargin="10px"?scroll="yes">????
-
????<form?id="form1"?action="default.aspx"?method="post"?enctype="multipart/form-data"?runat="server">????
-
<table?width="100%"?cellspacing="4"?cellpadding="4"?border="0"?bgcolor="#FCFCFC">????
- ????<tr>??????
-
????<td?class="DH1">????
-
????<table?width="100%"?cellspacing="4"?cellpadding="4"?border="0"?bgcolor="#FCFCFC">????
- ????<tr>????
-
????<td?class="DH2">????
- ????<STRONG>批量上传相片?(支持的相片类型:<%=allowFileType?%>;单个相片最大不能超过:<%=maxSize?%>)</STRONG>??????
-
????</td><td?class="DH2"?align="right"></td>????
- ????</tr>????
- ????</table>????
-
<div?id="content">????
- ??
-
????????<table?width="90%"?cellspacing="0"?cellpadding="0"?border="0"><tr><td>????
-
????????????<asp:DropDownList?ID="dllAlbumType"?runat="server"?AutoPostBack="true">??
- ????</asp:DropDownList>??
-
????????<span?id="spanButtonPlaceholder"></span>????
-
????????<input?id="btnUpload"?type="button"?value="上传相片"?class="btn"?/>????
-
????????<input?id="btnCancel"?type="button"?value="取消全部上传"?disabled="disabled"?class="btn"?/>??
-
?????????等待上传?<span?id="idFileListCount">0</span>?个?,成功上传?<span?id="idFileListSuccessUploadCount">0</span>?个????
- ????????</td>????
- ????????</tr></table>????
-
????????<table?id="idFileList"?class="uploadFileList"><tr?class="uploadTitle"><td><B>文件名</B></td><td><B>文件大小</B></td><td?width=100px><B>状态</B></td><td?width=35px>?</td></tr></table>????
- ??????????
-
????????<div?id="divSWFUploadUI"?style="visibility:?hidden;"?mce_style="visibility:?hidden;"></div>????
-
????????<noscript?style="display:?block;?margin:?10px?25px;?padding:?10px?15px;"?mce_style="display:?block;?margin:?10px?25px;?padding:?10px?15px;">????
- ????????????很抱歉,相片上传界面无法载入,请将浏览器设置成支持JavaScript。?????
- ????????</noscript>????
-
????????<div?id="divLoadingContent"?class="content"?style="background-color:?#FFFF66;?border-top:?solid?4px?#FF9966;?border-bottom:?solid?4px?#FF9966;?margin:?10px?25px;?padding:?10px?15px;?display:?none;"?mce_style="background-color:?#FFFF66;?border-top:?solid?4px?#FF9966;?border-bottom:?solid?4px?#FF9966;?margin:?10px?25px;?padding:?10px?15px;?display:?none;">????
- ????????????相片上传界面正在载入,请稍后...?????
- ????????</div>????
-
????????<div?id="divLongLoading"?class="content"?style="background-color:?#FFFF66;?border-top:?solid?4px?#FF9966;?border-bottom:?solid?4px?#FF9966;?margin:?10px?25px;?padding:?10px?15px;?display:?none;"?mce_style="background-color:?#FFFF66;?border-top:?solid?4px?#FF9966;?border-bottom:?solid?4px?#FF9966;?margin:?10px?25px;?padding:?10px?15px;?display:?none;">????
-
????????????相片上传界面载入失败,请确保浏览器已经开启对JavaScript的支持,并且已经安装可以工作的Flash插件版本。?<a?href="http://www.adobe.com/shockwave/download/download.cgi?P1_Prod_Version=ShockwaveFlash"?mce_href="http://www.adobe.com/shockwave/download/download.cgi?P1_Prod_Version=ShockwaveFlash"?target="_blank"><font?color='red'>安装flash更新</font></a>????
- ????????</div>????
-
????????<div?id="divAlternateContent"?class="content"?style="background-color:?#FFFF66;?border-top:?solid?4px?#FF9966;?border-bottom:?solid?4px?#FF9966;?margin:?10px?25px;?padding:?10px?15px;?display:?none;"?mce_style="background-color:?#FFFF66;?border-top:?solid?4px?#FF9966;?border-bottom:?solid?4px?#FF9966;?margin:?10px?25px;?padding:?10px?15px;?display:?none;">????
- ????????????很抱歉,相片上传界面无法载入,请安装或者升级您的Flash插件。?????
-
????????????请访问:?<a?href="http://www.adobe.com/shockwave/download/download.cgi?P1_Prod_Version=ShockwaveFlash"?mce_href="http://www.adobe.com/shockwave/download/download.cgi?P1_Prod_Version=ShockwaveFlash"?target="_blank"><font?color='red'>安装flash更新</font></a>?。?????
- ????????</div>????
- </div>????
- </td></tr></table>??
- </form>??
- </body>????
- </html>????
?
其中,关键要设置的地方,就是下面这块
SWFUpload.onload = function () {?? ??? var settings = {?? ??????? flash_url : "../Control/SwfUpload/swfupload.swf",???//要调用的flash地址 ??????? upload_url: "./upload.aspx",???//处理程序的地址 ??????? post_params: {?? ??????? "albumID" : "<%=this.dllAlbumType.SelectedValue%>" //要同步传送给upload.aspx的参数,这里我传了一个相册ID ??????? },?? ??????? file_size_limit : "2MB",?? //单个文件的最大限制 ??????? file_types : "*.jpg;*.jpeg;*.gif",???//允许上传的文件类型 ??????? file_types_description : "*.jpg;*.jpeg;*.gif",//允许上传的文件类型描述,用于default.aspx页面展示用??? ??????? file_upload_limit : 100,?? //每次最多可以上传的文件个数 ??????? file_queue_limit : 0,?? ??????? custom_settings : {?? ??????????? progressTarget : "fsUploadProgress",?? ??????????? cancelButtonId : "btnCancel",?? ??????????? uploadButtonId : "btnUpload",?? ??????????? myFileListTarget : "idFileList"?? ??????? },?? ??????? debug: false,?? ??????? auto_upload:false,??
?
?
upload.aspx
1、使用 Request["albumID"] 来获取上面设置的相册ID
2、HttpPostedFile photo = Request.Files["Filedata"]; 使用这句就可以获取到传过来的图片对象
?
代码就不多写了,跟用input上传一样处理,只是其中有一点,需要注意,使用swfupload是无法通过 photo.ContentType.ToString().ToLower(); 这样来获取到文件类型的,这里我使用 photo.FileName.Substring(photo.FileName.LastIndexOf(".")).ToLower(); ?来获取
(编辑:李大同)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|