前台
<script type="text/javascript" >
var tempCon = new Array();function addFile()
{
var oTb = document.getElementById("myFile");
var oTr = oTb.insertRow(0);
var fjCnt = document.getElementById("fjCnt");
var name = "thefilename" + fjCnt.value;
fjCnt.value=parseInt(fjCnt.value)+1;
oTr.insertCell(0).innerHTML = "<input id='file' name='"+name+"' type=file size='20'> <input type='button' value='取消' onclick='javascript:delObj(this)' class='imgButton'>";
}
function delObj(obj)
{
obj.parentElement.removeNode(true);
}
</script><tr>
<td class="td1">
生产
</td>
<td class="td2">
<asp:TextBox ID="producenm" runat="server" TextMode="MultiLine" Rows="3" Width="80%"></asp:TextBox>
</td>
<td class="td2" style="width:350px;">
<DIV style="HEIGHT: auto" class="MNtable">
<TABLE style="WIDTH: 100%" id="myFile">
<TBODY><TR><TD>
<INPUT id="Button2" class="bt" onclick="javascript:addFile()" type="button" />
<INPUT id="fjCnt" class="disNo" type="text" /></TD>
</TR>
<TR>
<TD>
<asp:Label id="saveStatu" runat="server" Text="" ForeColor="#990000"></asp:Label>
</TD></TR></TBODY></TABLE></DIV>
</td>
</tr>后台
private Boolean SaveImages()
{
///置空fileArr
fileArr.Clear(); saveStatu.Text = "";
///'遍历File表单元素 //如果没有上传图片
/// '状态信息
System.Text.StringBuilder strMsg = new System.Text.StringBuilder();
/// 随机生成的文件名
string strRankName;
/// 图片地址数组
///strMsg.Append("上传的文件分别是:<hr color=red>");
try
{
//Save图片
for (int iFile = 0; iFile < files.Count; iFile++)
{
HttpPostedFile postedFile = files[iFile];
string fileName, fileExtension;
double filesize;
fileName = System.IO.Path.GetFileName(postedFile.FileName);
filesize = Convert.ToDouble(postedFile.ContentLength) / 1024; if (fileName != "")
{
fileExtension = System.IO.Path.GetExtension(fileName); if (fileExtension.ToUpper() == ".exe" || fileExtension.ToUpper() == ".asp" || fileExtension.ToUpper() == ".aspx" || fileExtension.ToUpper() == ".htm")
{ Page.RegisterStartupScript("ImageButton3", "<script>alert('上传文件格式不对')</script>");
return false;
}
else
{ //strRankName = convertName(fileExtension);
strRankName = convertName(fileName);
postedFile.SaveAs(System.Web.HttpContext.Current.Request.MapPath("upfile/") + strRankName);
strMsg.Append("上传成功:<span style='text-decoration:underline;'>" + fileName + "</span>!<br>"); //把原文件名,现文件名,文件大小存到一个ArraList中
ArrayList inls = new ArrayList();
inls.Add(fileName);
inls.Add(strRankName);
inls.Add(filesize); //保存文件增加到ArralList
fileArr.Add(inls);
}
}
else
{ Page.RegisterStartupScript("ImageButton3", "<script>alert('存在未指定的图片地址,请检查!')</script>"); return false;
}
} saveStatu.Text += strMsg.ToString();
return true;
}
catch (System.Exception Ex)
{
Page.RegisterStartupScript("ImageButton3", "<script>alert('上传失败')</script>");
return false;
}
}
/// <summary>
/// 文件名格式化转换
/// </summary>
/// <returns></returns>
private string convertName(string fileExtension)
{
Random ran = new Random();
string r1 = ran.Next(1, 100).ToString();
string filename = DateTime.Now.ToString("yyMMddhhmmss") + r1 + System.IO.Path.GetExtension(fileExtension);
return filename;
} /// <summary>
/// 保存附件
/// </summary> protected void File_Save(int id)
{
if (files.Count == 0)
{
}
else
{ if (SaveImages() == false) return; foreach (ArrayList ar in fileArr)
{
string finame = "upfile/" + ar[1].ToString(); at.InsertQueryAttach(id, finame, ar[0].ToString(), Convert.ToDecimal(ar[2].ToString()));
}
}
}
<script type="text/javascript" >
var tempCon = new Array();function addFile()
{
var oTb = document.getElementById("myFile");
var oTr = oTb.insertRow(0);
var fjCnt = document.getElementById("fjCnt");
var name = "thefilename" + fjCnt.value;
fjCnt.value=parseInt(fjCnt.value)+1;
oTr.insertCell(0).innerHTML = "<input id='file' name='"+name+"' type=file size='20'> <input type='button' value='取消' onclick='javascript:delObj(this)' class='imgButton'>";
}
function delObj(obj)
{
obj.parentElement.removeNode(true);
}
</script><tr>
<td class="td1">
生产
</td>
<td class="td2">
<asp:TextBox ID="producenm" runat="server" TextMode="MultiLine" Rows="3" Width="80%"></asp:TextBox>
</td>
<td class="td2" style="width:350px;">
<DIV style="HEIGHT: auto" class="MNtable">
<TABLE style="WIDTH: 100%" id="myFile">
<TBODY><TR><TD>
<INPUT id="Button2" class="bt" onclick="javascript:addFile()" type="button" />
<INPUT id="fjCnt" class="disNo" type="text" /></TD>
</TR>
<TR>
<TD>
<asp:Label id="saveStatu" runat="server" Text="" ForeColor="#990000"></asp:Label>
</TD></TR></TBODY></TABLE></DIV>
</td>
</tr>后台
private Boolean SaveImages()
{
///置空fileArr
fileArr.Clear(); saveStatu.Text = "";
///'遍历File表单元素 //如果没有上传图片
/// '状态信息
System.Text.StringBuilder strMsg = new System.Text.StringBuilder();
/// 随机生成的文件名
string strRankName;
/// 图片地址数组
///strMsg.Append("上传的文件分别是:<hr color=red>");
try
{
//Save图片
for (int iFile = 0; iFile < files.Count; iFile++)
{
HttpPostedFile postedFile = files[iFile];
string fileName, fileExtension;
double filesize;
fileName = System.IO.Path.GetFileName(postedFile.FileName);
filesize = Convert.ToDouble(postedFile.ContentLength) / 1024; if (fileName != "")
{
fileExtension = System.IO.Path.GetExtension(fileName); if (fileExtension.ToUpper() == ".exe" || fileExtension.ToUpper() == ".asp" || fileExtension.ToUpper() == ".aspx" || fileExtension.ToUpper() == ".htm")
{ Page.RegisterStartupScript("ImageButton3", "<script>alert('上传文件格式不对')</script>");
return false;
}
else
{ //strRankName = convertName(fileExtension);
strRankName = convertName(fileName);
postedFile.SaveAs(System.Web.HttpContext.Current.Request.MapPath("upfile/") + strRankName);
strMsg.Append("上传成功:<span style='text-decoration:underline;'>" + fileName + "</span>!<br>"); //把原文件名,现文件名,文件大小存到一个ArraList中
ArrayList inls = new ArrayList();
inls.Add(fileName);
inls.Add(strRankName);
inls.Add(filesize); //保存文件增加到ArralList
fileArr.Add(inls);
}
}
else
{ Page.RegisterStartupScript("ImageButton3", "<script>alert('存在未指定的图片地址,请检查!')</script>"); return false;
}
} saveStatu.Text += strMsg.ToString();
return true;
}
catch (System.Exception Ex)
{
Page.RegisterStartupScript("ImageButton3", "<script>alert('上传失败')</script>");
return false;
}
}
/// <summary>
/// 文件名格式化转换
/// </summary>
/// <returns></returns>
private string convertName(string fileExtension)
{
Random ran = new Random();
string r1 = ran.Next(1, 100).ToString();
string filename = DateTime.Now.ToString("yyMMddhhmmss") + r1 + System.IO.Path.GetExtension(fileExtension);
return filename;
} /// <summary>
/// 保存附件
/// </summary> protected void File_Save(int id)
{
if (files.Count == 0)
{
}
else
{ if (SaveImages() == false) return; foreach (ArrayList ar in fileArr)
{
string finame = "upfile/" + ar[1].ToString(); at.InsertQueryAttach(id, finame, ar[0].ToString(), Convert.ToDecimal(ar[2].ToString()));
}
}
}
<tr>
<td class="td1">
生产
</td>
<td class="td2">
<asp:TextBox ID="producenm" runat="server" TextMode="MultiLine" Rows="3" Width="80%"></asp:TextBox>
</td>
<td class="td2" style="width:350px;">
<DIV style="HEIGHT: auto" class="MNtable">
<TABLE style="WIDTH: 100%" id="myFile">
<TBODY><TR><TD>
<INPUT id="Button2" class="bt" onclick="javascript:addFile()" type="button" />
<INPUT id="fjCnt" class="disNo" type="text" /></TD>
</TR>
<TR>
<TD>
<asp:Label id="saveStatu" runat="server" Text="" ForeColor="#990000"></asp:Label>
</TD></TR></TBODY></TABLE></DIV>
</td>
</tr>
<tr>
<td class="td1">
品质
</td>
<td class="td2">
<asp:TextBox ID="qualitynm" runat="server" TextMode="MultiLine" Rows="3" Width="80%"></asp:TextBox>
</td>
<td class="td2" style="width:350px;">
<DIV style="HEIGHT: auto" class="MNtable">
<TABLE style="WIDTH: 100%" id="myFile1">
<TBODY><TR><TD>
<INPUT id="Button1" class="bt" onclick="javascript:addFile1()" type="button" />
<INPUT id="fjCnt1" class="disNo" type="text" /></TD>
</TR>
<TR>
<TD>
<asp:Label id="Label3" runat="server" Text="" ForeColor="#990000"></asp:Label>
</TD></TR></TBODY></TABLE></DIV>
</td>
</tr>如果有两类要对应 的附件上传
前台可以 加上
function addFile1()
{
var oTb = document.getElementById("myFile1");
var oTr = oTb.insertRow(0);
var fjCnt1 = document.getElementById("fjCnt1");
var name = "thefilename1" + fjCnt1.value;
fjCnt1.value=parseInt(fjCnt1.value)+1;
oTr.insertCell(0).innerHTML = "<input id='file1' name='"+name+"' type=file size='20'> <input type='button' value='取消' onclick='javascript:delObj(this)' class='imgButton'>";
}但后台读的是file流就不知怎么区分上传的是生产的还是品质的附件了
在个数里的就是第一分类然后读第二分类的个数
//把原文件名,现文件名,文件大小存到一个ArraList中
ArrayList inls = new ArrayList();
inls.Add(fileName);
inls.Add(strRankName);
inls.Add(filesize); //保存文件增加到ArralList
fileArr.Add(inls);上面的改成// 保存第一分类的 if (iFile <Convert.ToInt16(fjnum.Text))
{ inls.Add(fileName);
inls.Add(strRankName);
inls.Add(filesize);
inls.Add("sc");
fileArr.Add(inls);
}
你的<input type=file name=xxx
不都是有name属性的吗?读取
生产的,你的name=shengchan1 name=shengchan2这样
品质的,你的name=pinzhi1 name=pinzhi2这样