日期:2014-05-17  浏览次数:20454 次

关于fileupload控件的上传问题
bool fileValid = false;
  if (this.FileUpload1.HasFile)这句什么意思?
  {
  string fileExtension = System.IO.Path.GetExtension(this.FileUpload1.FileName).ToLower();
  string[] restrictExtension = { ".gif", ".jpg", ".bmp", ".png" };
  for (int i = 0; i < restrictExtension.Length; i++)
  {
  if (fileExtension == restrictExtension[i])
  {
  fileValid = true;
  }
  }
  if (fileValid == true)
  {
  try
  {
  this.Image1.ImageUrl = "~/images/" + FileUpload1.FileName;
  this.FileUpload1.SaveAs(Server.MapPath("~/images/") + FileUpload1.FileName);
this.Label1.Text = "文件上传成功";
this.Label1.Text = "<Br/>";
this.Label1.Text = "<li>" + "原文件路径:" + this.FileUpload1.PostedFile.FileName;
this.Label1.Text = "<Br/>";
this.Label1.Text = "<li>" + "文件大小:" + this.FileUpload1.PostedFile.ContentLength + "字节";为什么这段会显示不出来?
  this.Label1.Text = "<Br/>" + "文件类型:" + this.FileUpload1.PostedFile.ContentType;

  }
  catch
  {
  this.Label1.Text = "文件上传不成功";
  }
  finally
  { }
  }
  else
  {
  this.Label1.Text = "只能上传后缀为.gif.jpg.bmp.png的文件";
  }

------解决方案--------------------
手表放上去看下就知道是什么意思了,第一个好像是判断有没有文件
------解决方案--------------------
如果未选择文件
------解决方案--------------------
是已选择
------解决方案--------------------
this.FileUpload1.HasFile
这句话是判断FileUpload控件里面是否选择了文件,没文件就不做上传操作。

this.Label1.Text = "文件上传成功";
this.Label1.Text = "<Br/>";
this.Label1.Text = "<li>" + "原文件路径:" + this.FileUpload1.PostedFile.FileName;
this.Label1.Text = "<Br/>";
this.Label1.Text = "<li>" + "文件大小:" + this.FileUpload1.PostedFile.ContentLength + "字节";
为什么这段会显示不出来?

因为你的label只有一个,一直不断的覆盖赋值,显示的是最后一次赋值。
把“=”改成“+=”就可以了。
------解决方案--------------------
貌似上传很简单,我一般不这样写 而且判断是否有选择文件 判断是符合要求,大小判断方法有很多。
基本上 如果没有什么限定的文件,基本上 3 4行代码就可以搞定。做个通用类就可以搞定了。