RELATEED CONSULTING
相关咨询
选择下列产品马上在线沟通
服务时间:8:30-17:00
你可能遇到了下面的问题
关闭右侧工具栏

新闻中心

这里有您想知道的互联网营销解决方案
浅析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://www.jxjierui.cn/article/cdcdjdd.html">http://www.jxjierui.cn/article/cdcdjdd.html</a> </div> <div class="hot_new"> <div class="page_title clearfix"> <h3>其他资讯</h3> </div> <div class="news_list clearfix"> <ul> <li> <a href="/article/dhhpgod.html">ModelScope的·在语音合成A会被读成ao,怎么解决?</a> </li><li> <a href="/article/dhhpgsj.html">利用Redis精准统计你的数据条数(redis统计条数据)</a> </li><li> <a href="/article/dhhpgej.html">Linux命令中的JAR文件操作(jarlinux命令)</a> </li><li> <a href="/article/dhhpgie.html">VB.NET继承重要作用体现</a> </li><li> <a href="/article/dhhpgss.html">当客户说:你们先开发出来我再提需求</a> </li> </ul> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> <!-- 底部信息 --> <div class="footer wow fadeInUp"> <div class="rowFluid"> <div class="span12"> <div class="container"> <div class="footer_content"> <div class="span4 col-xm-12"> <div class="footer_list"> <div class="span6"> <div class="bottom_logo"><img src="/Public/Home/images/ewm.jpg" alt="微信服务号二维码" /></div> </div> <div class="span6 col-xm-12"> <div class="quick_navigation"> <div class="quick_navigation_title">快速导航</div> <ul> <li><a href="http://www.ncfdjzy.com/" title="南充静音发电机" target="_blank">南充静音发电机</a></li><li><a href="http://chengdu.cdcxhl.com/weixin/" title="微信公众号开发" target="_blank">微信公众号开发</a></li><li><a href="http://www.kswcd.com/" title="成都企业网站设计" target="_blank">成都企业网站设计</a></li><li><a href="http://www.gyjierui.cn/" title="雷运建站" target="_blank">雷运建站</a></li><li><a href="http://www.kmxishu.com/" title="成都广告公司" target="_blank">成都广告公司</a></li><li><a href="http://www.qyqgszc.com" title="青羊区公司注册" target="_blank">青羊区公司注册</a></li><li><a href="https://www.cdcxhl.com/" title="做网站" target="_blank">做网站</a></li> </ul> </div> </div> </div> </div> <div class="span4 col-xm-6 col-xs-12"> <div class="footer_list"> <div class="footer_link"> <div class="footer_link_title">友情链接</div> <ul id="frientLinks"> <a href="https://www.cdcxhl.com/" title="网站制作" target="_blank">网站制作</a> <a href="https://www.cdcxhl.com/" title="网站建设" target="_blank">网站建设</a> <a href="https://www.cdxwcx.com/tuiguang/" title="成都网络推广" target="_blank">网络推广</a> <a href="http://seo.cdkjz.cn/" title="成都网站推广" target="_blank">网站推广</a> <a href="https://www.cdcxhl.com/xiaochengx.html" title="成都微信小程序开发" target="_blank">小程序开发</a> <a href="https://www.cdcxhl.com/menu.html" title="创新互联网站栏目导航" target="_blank">网站导航</a> </ul> <div class="footer_link_title">网站建设</div> <ul id="frientLinks"> <li><a href="/">内江浩晨众云建站</a></li> <li><a href="https://www.cdcxhl.com/menu.html" title="创新互联网站栏目导航" target="_blank">网站导航</a></li> </ul> </div> </div> </div> <div class="span4 col-xm-6 col-xs-12"> <div class="footer_list"> <div class="footer_cotact"> <div class="footer_cotact_title">联系方式</div> <ul> <li><span class="footer_cotact_type">企业:</span><span class="footer_cotact_content">青羊区浩晨众云设计工作室(个体工商户)</span></li> <li><span class="footer_cotact_type">地址:</span><span class="footer_cotact_content">成都市青羊区太升南路288号</span></li> <li><span class="footer_cotact_type">电话:</span><span class="footer_cotact_content"><a href="tel:18980820575" class="call">18980820575</a></span></li> <li><span class="footer_cotact_type">网址:</span><span class="footer_cotact_content"><a href="/" title="内江网站建设">www.jxjierui.cn</a></span></li> </ul> </div> </div> </div> </div> </div> <div class="copyright"> <p>公司名称:青羊区浩晨众云设计工作室(个体工商户) 联系电话:18980820575</p> <p><a href="http://beian.miit.gov.cn" target="_blank" rel="nofollow">网站备案号:蜀ICP备2025119795号-2</a></p> <p>内江浩晨众云建站 内江网站建设 内江网站设计 内江网站制作 <a href="http://www.cdxwcx.cn/" target="_blank">成都做网站</a></p> </div> </div> </div> </div> </body> </html> <script> $(".technical_support_box_z_info_box 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>