<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
<channel>
<title><![CDATA[Heck's  Blog]]></title> 
<link>https://www.heckjj.com/index.php</link> 
<description><![CDATA[一瞬间的决定，往往可以改变很多，事实上，让自己成功的往往不是知识，是精神！ 如果你总是为自己找借口，那只好让成功推迟。执行力，今天！]]></description> 
<language>zh-cn</language> 
<copyright><![CDATA[Heck's  Blog]]></copyright>
<item>
<link>https://www.heckjj.com/post//</link>
<title><![CDATA[ASP.NET 2.0 多文件上传小技巧]]></title> 
<author>Heck &lt;@hecks.tk&gt;</author>
<category><![CDATA[编程杂谈]]></category>
<pubDate>Thu, 07 May 2009 05:25:56 +0000</pubDate> 
<guid>https://www.heckjj.com/post//</guid> 
<description>
<![CDATA[ 
	&nbsp;&nbsp;&nbsp;&nbsp; 如果想实现任意多个文件上传的功能，点击一次按钮可以添加一个文件上传框，以前在网络硬盘上看到过。JavaScript我知道怎么实现任意添加上传文件控件，问题是添加的是Html控件，我不懂怎么让服务器端可以获取文件。<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;于是上google搜索“ASP.NET 多文件上传”，还真找到一篇文件，标题为《在ASP.NET中实现多文件上传》，文章里面是VB.NET实现的，功能和我要的一模一样，我主要是要看服务器端怎么获取客户端上传的文件，看了文中的代码，原来这么简单，System.Web.HttpContext.Current.Request.Files就包含客户端浏览器上传的文件了，我用C#写了一段简单的代码，原本以为应该可以了，结果出乎意料上传3个图片System.Web.HttpContext.Current.Request.Files返回的文件格式还是0个。<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;不知道什么原因，看看代码，这么简单不可能些错啊，再看看google搜索结果里的另外几篇文章，发现我看的第一篇不是原做，作者的网站上原作的实例有两个版本，一个是VB.NET一个是C#的，现在我不用自己写了，复制原文的代码到本地，运行，果然可以啊，那我写的代码怎么不行？反复比对我的代码和文章中代码的区别，试了几个地方，最后发现和其他地方都没有关系，原因出在<form id="form1" runat="server" enctype="multipart/form-data"> 的enctype属性上，VS 2005建的页面里没有这个属性，而文章实例里有，我后来加上enctype="multipart/form-data"后System.Web.HttpContext.Current.Request.Files就能z正常获取文件个数了。<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;大概是VS 2003建的页面默认有这个属性吧，否则这么重要的属性作者应该会在文章中提到的。<br/><br/>参考：<br/>《在ASP.NET中实现多文件上传》<br/><br/>我做的试验代码：<br/><div class="code"><br/>&lt;%@ Page Language=&quot;C#&quot; AutoEventWireup=&quot;true&quot; CodeBehind=&quot;Default.aspx.cs&quot; Inherits=&quot;Demo._Default&quot; %&gt;<br/>&lt;!DOCTYPE html PUBLIC &quot;-//W3C//DTD XHTML 1.0 Transitional//EN&quot; &quot;http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd&quot;&gt;<br/>&lt;script language=&quot;JavaScript&quot;&gt;<br/>function addFile()<br/>&#123;<br/> var str = &#039;&lt;INPUT type=&quot;file&quot; size=&quot;50&quot; NAME=&quot;File&quot;&gt;&#039;<br/> document.getElementById(&#039;MyFile&#039;).insertAdjacentHTML(&quot;beforeEnd&quot;,str)<br/>&#125;<br/>&lt;/script&gt;<br/>&lt;html xmlns=&quot;http://www.w3.org/1999/xhtml&quot; &gt;<br/>&lt;head runat=&quot;server&quot;&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&lt;title&gt;Untitled Page&lt;/title&gt;<br/>&lt;/head&gt;<br/>&lt;body &gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&lt;form id=&quot;form1&quot; runat=&quot;server&quot; enctype=&quot;multipart/form-data&quot;&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;input type=&quot;button&quot; value=&quot;增加(Add)&quot; onclick=&quot;addFile()&quot;&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;input onclick=&quot;this.form.reset()&quot; type=&quot;button&quot; value=&quot;重置(ReSet)&quot;&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;asp:Button Runat=&quot;server&quot; Text=&quot;上传&quot; ID=&quot;Upload&quot; OnClick=&quot;Upload_Click1&quot; &gt;&lt;/asp:Button&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&lt;div id=&quot;MyFile&quot;&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;input type=&quot;file&quot; name=&quot;File&quot; /&gt; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&lt;/div&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&lt;/form&gt;<br/>&lt;/body&gt;<br/>&lt;/html&gt;<br/></div><br/><br/><div class="code"><br/>using System;<br/>using System.Data;<br/>using System.Configuration;<br/>using System.Collections;<br/>using System.Web;<br/>using System.Web.Security;<br/>using System.Web.UI;<br/>using System.Web.UI.WebControls;<br/>using System.Web.UI.WebControls.WebParts;<br/>using System.Web.UI.HtmlControls;<br/><br/>namespace Demo<br/>&#123;<br/>&nbsp;&nbsp;&nbsp;&nbsp;public partial class _Default : System.Web.UI.Page<br/>&nbsp;&nbsp;&nbsp;&nbsp;&#123;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;protected void Page_Load(object sender, EventArgs e)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#123;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#125;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;protected void Upload_Click1(object sender, EventArgs e)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#123;<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;HttpFileCollection _files = System.Web.HttpContext.Current.Request.Files;<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for (int i = 0; i &lt; _files.Count; i++)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#123;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;_files&#91;i&#93;.SaveAs(Server.MapPath(&quot;~/Files/&quot; + _files&#91;i&#93;.FileName));<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#125;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#125;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&#125;<br/>&#125;<br/></div><br/>Tags - <a href="https://www.heckjj.com/tags/%25E5%25A4%259A%25E6%2596%2587%25E4%25BB%25B6%25E4%25B8%258A%25E4%25BC%25A0/" rel="tag">多文件上传</a>
]]>
</description>
</item><item>
<link>https://www.heckjj.com/post//#blogcomment</link>
<title><![CDATA[[评论] ASP.NET 2.0 多文件上传小技巧]]></title> 
<author> &lt;user@domain.com&gt;</author>
<category><![CDATA[评论]]></category>
<pubDate>Thu, 01 Jan 1970 00:00:00 +0000</pubDate> 
<guid>https://www.heckjj.com/post//#blogcomment</guid> 
<description>
<![CDATA[ 
	
]]>
</description>
</item>
</channel>
</rss>