aspx 页面 <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="AutoPhoto_Default" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> <title>无标题页</title> <script language="javascript" type="text/ecmascript"> //====================== //功能:在表单中input file控件 //参数:parentID---要插入input file控件的父元素ID // inputID----input file控件的ID //====================== function createInput(parentID,inputFileID){ var parent=$(parentID);//获取父元素 var div=document.createElement("div");//创建一个div容器用于包含input file var x=parseInt(Math.random()*(80-1))+1; var divName=inputFileID+x.toString();//随机div容器的名称 div.name=divName; div.id=divName; var aElement=document.createElement("input"); //创建input aElement.name=inputFileID; aElement.id=inputFileID; aElement.type="file";//设置类型为file var delBtn=document.createElement("input");//再创建一个用于删除input file的Button delBtn.type="button"; delBtn.value="删除"; delBtn.onclick=function(){ removeInput(parentID,divName)};//为button设置onclick方法 div.appendChild(aElement);//将input file加入div容器 div.appendChild(delBtn);//将删除按钮加入div容器 parent.appendChild(div);//将div容器加入父元素 } //============================ //功能:删除一个包含input file的div 容器 //参数:parentID---input file控件的父元素ID // DelDivID----个包含input file的div 容器ID //============================ function removeInput(parentID,DelDivID){ var parent=$(parentID); parent.removeChild($(DelDivID)); } //通过元素ID获取文档中的元素 function $(v){return document.getElementById(v);} </script> </head> <body> <form id="form1" runat="server"> <div align="left" id="div_Pic" style="border: 1px solid #CCCCCC"> <input name="PicFile" type="file" id="ShowPicFile"> </div> <input type="button" onclick="createInput('div_Pic','PicFile')" name="button" id="button" value="+ 继续添加图片"> </form> </body> </html>
点击“+ 继续添加图片”时会产生一个新的上传控件。
<form id="form1" method="post" runat="server" enctype="multipart/form-data">
后台获取控件
HttpFileCollection files = HttpContext.Current.Request.Files;
enctype="multipart/form-data"
ENCTYPE="multipart/form-data"用于表单里有图片上传。

<form name="userInfo" method="post" action="first_submit.jsp" ENCTYPE="multipart/form-data"> 表单标签中设置enctype="multipart/form-data"来确保匿名上载文件的正确编码。 如下: <tr> <td height="30" align="right">上传企业营业执照图片:</td> <td><INPUT TYPE="FILE" NAME="uploadfile" SIZE="34" onChange="checkimage()"></td> </tr> 就得加ENCTYPE="multipart/form-data"。 表单中enctype="multipart/form-data"的意思,是设置表单的MIME编码。默认情况,这个编码格式是application/x-www-form-urlencoded,不能用于文件上传;只有使用了multipart/form-data,才能完整的传递文件数据,进行下面的操作. enctype="multipart/form-data"是上传二进制数据; form里面的input的值以2进制的方式传过去。 form里面的input的值以2进制的方式传过去,所以request就得不到值了。 也就是说加了这段代码,用request就会传递不成功,取表单值加入数据库时,用到下面的: SmartUpload su = new SmartUpload();//新建一个SmartUpload对象 su.getRequest().getParameterValues();取数组值 su.getRequest().getParameter( );取单个参数单个值
HttpFileCollection Files = HttpContext.Current.Request.Files;
for(int i=0;i<Files.Count;i++)
{
HttpPostedFile f=Files[i];
}