首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > asp.net >

同个页面上传对应多个类型的附件解决办法

2012-05-21 
同个页面上传对应多个类型的附件前台script typetext/javascript var tempCon new Array()functio

同个页面上传对应多个类型的附件
前台
<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()));
   



  }
  }
  }

[解决办法]
怎么区分上传的是生产的还是品质的附件了?
你的<input type=file name=xxx
不都是有name属性的吗?读取
生产的,你的name=shengchan1 name=shengchan2这样
品质的,你的name=pinzhi1 name=pinzhi2这样

热点排行