Asp.net 2.0 上传文件

Asp.net 2.0上传文件的用法与Asp.net 1.0的相同,只不过多了一个FileUpload的组件而已

在网页上拖拽一个FileUpload和一个Button 控件

 private void Button1_Click(object sender, System.EventArgs e  )     就可以写上传代码了

上传到硬盘上

string path = Server.MapPath("File");
   string fileName = "1.dat";
   this.FileUpload1.PostedFile.SaveAs(path+@"/"+fileName);

上传的文件就被存储到 当前网页同级的File文件夹下,文件名为1.dat

SaveAs方法的传入参数必须是绝对的物理路径, 在这里我们通过Server.MapPath来把一个相对的File文件夹路径

转化为了一个绝对物理地址。另外我建议文件名不要取实际的上传文件名,最好自定义。而自定的方式就是用

日期+随机数+后缀名 来拼接文件名。这样可以避免上传文件重名,导致无意覆盖。

注意 this.FileUpload1.PostedFile中的PostedFile实际就是文件上传到服务器时候分配的一个临时内存空间

,该类型为HttpPostedFile,程序运行完毕后该内存自动释放。 实际上,不管你保不保存上传文件到硬盘上,只要

发生了网页交互(Post),该文件都已经上传到服务器内存,剩下的问题就是你是否保存它。

上传到数据库

把上传文件传到数据库,则需要相应数据库字段为Image字段,该字段可以存储二进制数据。

 

SqlCommand command = new SqlCommand();
   command.Connection = DataBase.GetConn();
   command.CommandText = "insert into tb(img) values(@img)";
   SqlParameter par = command.Parameters .Add("@img",SqlDbType.Image);

   int length = this.File1.PostedFile.ContentLength;
   //文件保存到缓存
   byte[] imageByte = new byte[length];
   this.File1.PostedFile.InputStream.Read(imageByte,0,length);

   par.Value = imageByte;

command.Connection.Open();
    command.ExecuteNonQuery();command.Connection.Close();

 取出存在数据库中的文件则刚刚相反,数据库字段的值-》byte数组-》流-》文件。

这个在后面的文章再进行讲解

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值