028-86922220
建站资讯

网站建设资讯

为你提供网站建设行业资讯、网站优化知识、主机域名邮箱、网站开发常见问题等。

浅析ASP.NET多附件上传的实现

在写这篇文章之前我也在Google上找到了很多有关多附件上传的文章,有用ASP.NET多附件上传实现的,也有用JSP、PHP等其它技术实现的,但基本前提都是事先通过js脚本来动态创建DOM,然后上传的时候在服务端做一下处理,有点类似于163的邮件系统。文件上传需要通过页面的POST方法进行提交,这个我在一次MOSS开发中iFrame表单提交的古怪问题解决一问中已经阐述过,其中包括了如何使用页面隐藏的iFrame来提交表单从而避免整个页面提交到服务器而导致页面的刷新。多附件上传的原理与之类似,只不过需要事先通过脚本在页面上动态创建多个input type='file'的标签,当然,如果要想功能更加完美,你可能还需要通过脚本动态添加一些按钮事件以让用户可以删除他所添加的文件。下面是ASP.NET多附件上传的实现

其中红色方框内的内容是通过脚本在页面上动态创建的,将用户在客户端所选文件的文件名动态添加到一个div里,同时在这个div中放一个隐藏的input type=’file’的标签,它的value为用户所选文件的路径,然后在div中放置一个img,添加onmouseover和onmouseout 事件为图片增加了一些鼠标滑动时的效果,onclick事件用来响应用户点击img时删除对应的文件。看一下ASP.NET多附件上传的代码。

 
 
 
  1. <%@PageLanguage="C#"AutoEventWireup="true"CodeBehind=
    "Default.aspx.cs"Inherits="WebApplication1._Default"%> 
  2.  
  3. //EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
  4. <htmlxmlnshtmlxmlns="http://www.w3.org/1999/xhtml"> 
  5. <headrunatheadrunat="server"> 
  6. title></font></strong> </li> <li><strong><font><</font></strong><font>scriptsrc</font><strong><font>scriptsrc</font></strong>="MultiAffix.js"<font>type</font>="text/javascript"<strong><font>> script></font></strong> </li> <li><strong><font><</font></strong><font>scripttype</font><strong><font>scripttype</font></strong>=<font>"text/javascript"</font><strong><font>></font></strong> </li> <li><font>varcontrolName</font>=<font>1</font>;//Thisvariableisforthedynamicfilecontrols'sname.  </li> <li> </li> <li>functionaddImg(targetElement,savestatsElement,oldimgElement){  </li> <li><font>varbrowseimgElement</font>=$get("browseimg");  </li> <li><font>vararr</font>=<font>browseimgElement</font>.getElementsByTagName('input');  </li> <li>if(<font>arr.length</font>==0||arr[0]<font>.value.length</font>==0){  </li> <li> </li> <li>alert('Nofileinputs.');  </li> <li>return;  </li> <li>}  </li> <li><font>varoldbrowser</font>=<font>arr</font>[0];  </li> <li><font>varfilename</font>=<font>getfilename</font>(oldbrowser.value);  </li> <li>if(!validateimgtype(oldbrowser.value))return;  </li> <li>if(!validateimgcount(targetElement,3))return;  </li> <li><font>varimgtitles</font>=<font>savestatsElement</font>.value+oldimgElement.value;  </li> <li>if(validateimgexist(filename,imgtitles))<br>{alert('Youhavealreadyaddedthisimage!');return;}  </li> <li>if(oldbrowser!=undefined){  </li> <li><font>varnewbrowser</font>=<font>oldbrowser</font>.cloneNode(true);  </li> <li><font>newbrowser.value</font>=<font>''</font>;  </li> <li><font>varnewfile</font>=<font>document</font>.createElement('div');  </li> <li><font>newfile.innerHTML</font>=<font>filename</font>+'  ';  </li> <li> </li> <li>//Createabuttonelementfordeletetheimage.  </li> <li><font>varnewfileimgbutton</font>=<font>document</font>.createElement('img');  </li> <li><font>newfileimgbutton.src</font>=<font>'ShoutOut_Close.gif'</font>;  </li> <li><font>newfileimgbutton.alt</font>=<font>'Delete'</font>;  </li> <li><font>newfileimgbutton.onclick</font>=<font>function</font>(){  </li> <li>this.parentNode.parentNode.removeChild(this.parentNode);  </li> <li><font>savestatsElement.value</font>=<font>updatehiddenimgs</font>(filename,savestatsElement.value);  </li> <li>}  </li> <li><font>newfileimgbutton.onmouseover</font>=<font>function</font>(){  </li> <li><font>this.src</font>=<font>'ShoutOut_Close_rollover.gif'</font>;  </li> <li>}  </li> <li><font>newfileimgbutton.onmouseout</font>=<font>function</font>(){  </li> <li><font>this.src</font>=<font>'ShoutOut_Close.gif'</font>;  </li> <li>}  </li> <li> </li> <li>browseimgElement.replaceChild(newbrowser,oldbrowser);  </li> <li><font>oldbrowser.name</font>=++controlName;  </li> <li><font>oldbrowser.style.display</font>=<font>'none'</font>;  </li> <li>newfile.appendChild(oldbrowser);  </li> <li> </li> <li>newfile.appendChild(newfileimgbutton);  </li> <li>targetElement.appendChild(newfile);  </li> <li> </li> <li>$get("chkAgree")<font>.checked</font>=<font>false</font>;  </li> <li>$get("btAdd")<font>.disabled</font>=<font>true</font>;  </li> <li>savestatsElement.value+=filename+'|';  </li> <li>}  </li> <li>}  </li> <li><strong><font> script></font></strong> </li> <li> </li> <li><strong><font> head></font></strong> </li> <li><strong><font><body></font></strong> </li> <li><strong><font><</font></strong><font>formid</font><strong><font>formid</font></strong>="form1"<font>runat</font>="server"<strong><font>></font></strong> </li> <li><strong><font><</font></strong><font>asp:ScriptManagerID</font><strong><font>asp:ScriptManagerID</font></strong>="ScriptManager1"<font>runat</font>="server"<strong><font>></font></strong> </li> <li><strong><font> asp:ScriptManager></font></strong> </li> <li><strong><font><div></font></strong> </li> <li><strong><font><div></font></strong> </li> <li>Description:  </li> <li><strong><font><</font></strong><font>asp:TextBoxID</font><strong><font>asp:TextBoxID</font></strong>="tbDescription"<font>MaxLength</font>="2000"<font>runat</font>=<br>"server"<font>TextMode</font>="MultiLine"<strong><font>> asp:TextBox></font></strong> </li> <li><strong><font> div></font></strong> </li> <li><strong><font><div></font></strong> </li> <li>Location:  </li> <li><strong><font><</font></strong><font>asp:DropDownListID</font><strong><font>asp:DropDownListID</font></strong>="ddlLocation"<font>runat</font>="server"<strong><font>></font></strong> </li> <li><strong><font> asp:DropDownList></font></strong> </li> <li><strong><font> div></font></strong> </li> <li><strong><font><div></font></strong> </li> <li>DisplayPostedByUser:  </li> <li><strong><font><</font></strong><font>asp:CheckBoxID</font><strong><font>asp:CheckBoxID</font></strong>="chkPostedByUser"<font>Checked</font>="true"<font>runat</font>=<font>"server"</font><strong><font>/></font></strong> </li> <li><strong><font> div></font></strong> </li> <li><strong><font><div></font></strong> </li> <li>NotifyShoutoutUser:  </li> <li><strong><font><</font></strong><font>asp:CheckBoxID</font><strong><font>asp:CheckBoxID</font></strong>="chkNotifyUser"<font>runat</font>="server"<strong><font>/></font></strong> </li> <li><strong><font> div></font></strong> </li> <li><strong><font><div></font></strong> </li> <li>NotifyShoutouttoEmail:  </li> <li><strong><font><</font></strong><font>asp:TextBoxID</font><strong><font>asp:TextBoxID</font></strong>="tbShoutoutToEmail"<br><font>MaxLength</font>="25"<font>runat</font>=<font>"server"</font><strong><font>> asp:TextBox></font></strong> </li> <li><strong><font> div></font></strong> </li> <li><strong><font><div></font></strong> </li> <li>Images:  </li> <li><strong><font><</font></strong><font>divid</font><strong><font>divid</font></strong>="saveshoutoutimgs"<font>runat</font>="server"<strong><font>></font></strong> </li> <li><strong><font> div></font></strong> </li> <li><strong><font><</font></strong><font>inputid</font><strong><font>inputid</font></strong>="btAddImage"<font>type</font>="button"<font>onclick</font>=<font>"$get('saveshoutoutaddimgs').<br>style.display='block';this.disabled=true;"</font> </li> <li><font>value</font>=<font>"ClickheretoAddImage"</font><strong><font>/></font></strong> </li> <li><strong><font> div></font></strong> </li> <li><strong><font><</font></strong><font>divid</font><strong><font>divid</font></strong>=<font>"saveshoutoutdetailshowimg"</font><strong><font>></font></strong> </li> <li><strong><font><</font></strong><font>divid</font><strong><font>divid</font></strong>="saveshoutoutaddimgs"<font>style</font>="display:none;"<strong><font>></font></strong> </li> <li><strong><font><div></font></strong> </li> <li>AddImage:<strong><font> div></font></strong> </li> <li><strong><font><</font></strong><font>divid</font><strong><font>divid</font></strong>=<font>"browseimg"</font><strong><font>></font></strong> </li> <li><strong><font><</font></strong><font>inputtype</font><strong><font>inputtype</font></strong>=<font>"file"</font><strong><font>/></font></strong> </li> <li><strong><font> div></font></strong> </li> <li><strong><font><div></font></strong> </li> <li>Sizelimitoftheimagesis100kb.HieghtandWidthoftheimagesshouldnotexceed  </li> <li>200px.<strong><font> div></font></strong> </li> <li><strong><font><div></font></strong> </li> <li><strong><font><</font></strong><font>inputid</font><strong><font>inputid</font></strong>="chkAgree"<font>type</font>="checkbox"<font>onclick</font>=<font>"$get('btAdd').<br>disabled=!this.checked;"</font><strong><font>/></font></strong>I  </li> <li>agree.legalsignofftexttobedefined.  </li> <li><strong><font> div></font></strong> </li> <li><strong><font><div></font></strong> </li> <li><strong><font><</font></strong><font>inputid</font><strong><font>inputid</font></strong>="btAdd"<font>disabled</font>="disabled"<font>type</font>="button"<font>value</font>="Add"<font>runat</font>=<font>"server"</font><strong><font>/></font></strong> </li> <li><strong><font> div></font></strong> </li> <li><strong><font> div></font></strong> </li> <li><strong><font> div></font></strong> </li> <li><strong><font> div></font></strong> </li> <li><strong><font><</font></strong><font>asp:TextBoxID</font><strong><font>asp:TextBoxID</font></strong>="tbImgs"<font>runat</font>="server"<font>Text</font>="|"<font>Style</font>=<br>"display:none;"<strong><font>> asp:TextBox></font></strong> </li> <li><strong><font><</font></strong><font>asp:TextBoxID</font><strong><font>asp:TextBoxID</font></strong>="tbOldImgs"<font>runat</font>="server"<font>Text</font>="|"<font>Style</font>=<br>"display:none;"<strong><font>> asp:TextBox></font></strong> </li> <li><strong><font> form></font></strong> </li> <li><strong><font> body></font></strong> </li> <li><strong><font> html></font></strong> </li> </ol></pre><p>【编辑推荐】</p> <ol> <li><font>ASP.NET插件的实现方式</font></li> <li><font>概述ASP.NET应用程序</font></li> <li><font>浅谈ASP.NET 2.0数据绑定</font></li> <li><font>ASP.NET阻止Java Script注入式攻击</font></li> <li><font>ASP.NET MVC使用T4</font></li> </ol> <br> 本文名称:浅析ASP.NET多附件上传的实现 <br> 文章分享:<a href="http://whjierui.cn/article/cdcdjdd.html">http://whjierui.cn/article/cdcdjdd.html</a> </div> </div> <div class="other"> <h3>其他资讯</h3> <ul> <li> <a href="/article/cogeepg.html">重庆云服务器租用怎么搭建</a> </li><li> <a href="/article/cogeisd.html">vsanHCL报错处理</a> </li><li> <a href="/article/cogeiss.html">html5如何上传图片</a> </li><li> <a href="/article/cogeepj.html">微信拉群怎么拉?()</a> </li><li> <a href="/article/cogeicg.html">如何手动删除SQLServer2000默认实例,命名实例或虚拟实例?(只需备份原始数据库中删除现有数据库中)</a> </li> </ul> </div> </div> <footer> <div class="foot-top"> <ul> <li> <div class="title">关于美图云海</div> <div class="tbox"> <div class="txt"> 美图云海专注于网站建设、小程序开发, <br /> 用心做好每一个网站,懂您所需、做您所想! <br /> 我们比其他网络公司做的更好、做的更多, <br /> 为客户创造更大的价值,让客户更省心! </div> <a rel="nofollow" href="javascript:;" class="more">MORE</a> </div> </li> <li> <div class="title">相关专题</div> <div class="tbox"> <a href="javascript:;" class="link">企业官网定制</a> <a href="javascript:;" class="link">小程序开发</a> <a href="javascript:;" class="link">品牌网站设计</a> <a href="javascript:;" class="link">网站建设标签</a> <a href="javascript:;" class="link">乐山网站建设</a> <a href="javascript:;" class="link">高端网站设计</a> <a href="javascript:;" class="link">公司做网站</a> </div> </li> <li> <div class="title">凭什么选择我们</div> <div class="tbox"> <a class="link">专业设计团队</a> <a class="link">快速响应服务</a> <a class="link">7个软件著作权</a> <a class="link">已服务3000+客户</a> <a class="link">项目检测具体全面</a> <a class="link">技术研发能力强劲</a> <a class="link">深度符合SEO优化</a> <a class="link">15项设计奖项</a> <a class="link">完善的制作流程</a> <a class="link">售后服务让您省心</a> </div> </li> <li> <div class="title">网站设计案例</div> <div class="tbox"> <ul> <li> <a href="javascript:;" target="_blank"> <div class="img"><img src="/Public/Home/images/gebaili.jpg" alt="哥百利" /> </div> <div class="tboxs"> <div class="t1">哥百利</div> <div class="t2">家具研发、设计、生产、服务为一体的专业实木家具订做企业</div> </div> </a> </li> <li> <a href="javascript:;" target="_blank"> <div class="img"><img src="/Public/Home/images/cdshujin.jpg" alt="蜀锦在线" /></div> <div class="tboxs"> <div class="t1">蜀锦在线</div> <div class="t2">汽车行业网站建设</div> </div> </a> </li> </ul> </div> </li> </ul> </div> <div class="foot-center"> <ul> <li> <div class="f-ewm"><img alt="美图云海微信公众号" src="/Public/Home/images/ewm.jpg" /></div> <div class="tbox ewm"> <div class="t1">扫一扫关注</div> <div class="t2">专业团队为您解答</div> </div> </li> <li> <div class="tbox tel"> <div class="t1">电话/邮箱</div> <div class="t2">400-028-6601 / 028-86922220<br>631063699@qq.com</div> </div> </li> <li> <div class="tbox sz"> <div class="t1">成都(总部)</div> <div class="t2">成华区 双林路22号仁禾商务楼5F<br> 大客户专线:13518219792 </div> </div> </li> <li> <div class="tbox gz"> <div class="t1">网站建设(乐山站)</div> <div class="t2"> 乐山市市中区瑞祥路一段1507号 <br /> 028-86922220 </div> </div> </li> </ul> </div> <div class="foot-button"> <div class="link-box" style="width:100%;float:none;"> <div class="a-box"></div> <div style="border-top:1px solid #ebebeb;font-size:12px;color:#666666;line-height:2;padding-top:20px;margin-top:20px;"> 业务范围包括企业网站建设、商城系统开发、品牌网站设计、旅游网站制作、英文外贸网站、教育培训门户网站开发、微信手机移动端开发、响应式网站建设、微信小程序开发、APP定制和其他类型网站定制等。 <br>服务区域包括成都市锦江区、青羊区、武侯区、金牛区、成华区、龙泉驿、温江、新都、高新区、成都市以及全国各地接受异地服务商的公司企业或者机构。 <br> <div class="a-box"><span><b>友情链接</b></span> <a href="https://www.cdcxhl.com/h5.html" title="成都h5网站建设" target="_blank">成都h5网站建设</a><a href="http://www.cdxwcx.cn/tuoguan/xiyun.html" title="西云服务器托管" target="_blank">西云服务器托管</a><a href="http://www.sffdjwx.com/" title="沃尔沃发电机出租" target="_blank">沃尔沃发电机出租</a><a href="http://www.cdkjz.cn/small/" title="成都微信小程序开发" target="_blank">成都微信小程序开发</a><a href="http://www.gytzsp.com/" title="天泽尚品装饰" target="_blank">天泽尚品装饰</a><a href="http://www.bzwzjz.com/serve/" title="专业网站建设" target="_blank">专业网站建设</a><a href="http://www.cxjianzhan.cn/" title="做网站公司" target="_blank">做网站公司</a><a href="http://www.qltuopan.com/" title="成都出口托盘" target="_blank">成都出口托盘</a><a href="http://www.zycyfdj.com/" title="资阳发电机组租用" target="_blank">资阳发电机组租用</a><a href="http://www.cdbrznjsb.com/" title="配电室环境" target="_blank">配电室环境</a> </div> </div> <div class="copyright">©2025 青羊区美图云海设计工作室(个体工商户)乐山站   蜀ICP备19037934号</div> </div> </div> </footer> <div class="fixed-contact-wrap show"> <ul class="item-list clearfix"> <li class="phone"> <a rel="nofollow" target="_blank" href="tel:028-86922220"><i class="icon"></i><strong>028-86922220</strong></a> </li> <li class="qq"> <a rel="nofollow" target="_blank" href="http://wpa.qq.com/msgrd?v=3&uin=244261566&site=qq&menu=yes"><i class="icon"></i><strong> 244261566</strong></a> </li> <li class="back-top"> <a href="#" rel="nofollow" class="back-to-top"><i class="icon"></i><strong> 回到顶部</strong></a> </li> </ul> </div> <script type="text/javascript"> //右侧联系我们悬浮窗 $(".fixed-contact-wrap").hover(function () { $(this).addClass("active"); }, function () { $(this).removeClass("active"); }) function show_phone_menu() { $(".right-side ul").toggle(); } </script> </body> </html> <script> $(".con img").each(function(){ var src = $(this).attr("src"); //获取图片地址 var str=new RegExp("http"); var result=str.test(src); if(result==false){ var url = "https://www.cdcxhl.com"+src; //绝对路径 $(this).attr("src",url); } }); window.onload=function(){ document.oncontextmenu=function(){ return false; } } </script>