FileUpload控件: 属性: FileName:文件名 HasFile:bool 是否选中了文件 FileBytes:要上传文件的二进制数据 方法: SaveAs(string 绝对路径):上传,另存为。
一、上传到硬盘文件夹 (一)传单个文件 第一步:准备好文件及路径: //把之前在客户端的文件名给取出来 string fileName = FileUpload1.FileName;
//防止文件重名 fileName = DateTime.Now.ToString("yyyyMMddhhmmsss") + fileName;
//把相对路径转化为绝对路径 string path = Server.MapPath("uploads/" + fileName);
第二步:执行上传: //上传 FileUpload1.SaveAs(path); //参数必须根路径
注意: 1.如何防止文件重名? 2.如何防止同一时间点不同用户传统一文件名?
protected void Button1_Click(object sender, EventArgs e) { Label2.Text = FileUpload1.FileName; string filename = DateTime.Now.ToString("yyyyMMddhhmmss") + Label2.Text; string path = Server.MapPath("/upload/") + filename; FileUpload1.SaveAs(path); }
(二)传多个文件: 思路:遍历表单中所有的FileUpload控件,如果选择文件就上传
int index = 0; foreach (Control ctrl in form1.Controls) { if (ctrl is FileUpload) { index++; //取得每个上传控件 FileUpload upload = ctrl as FileUpload; //上传控件中选上文件了 if (upload.HasFile) { //做文件路径出来 string path = Server.MapPath("uploads/" + DateTime.Now.ToString("yyyyMMddhhmmss") + index.ToString("00") + upload.FileName);
//上传 upload.SaveAs(path); } } }
我的:
protected void Button8_Click(object sender, EventArgs e) { foreach (Control co in form1.Controls) { if (co is FileUpload) { FileUpload fiup=co as FileUpload; if (fiup.HasFile)//重点 { string filename = DateTime.Now.ToString("yyyyMMddhhmmss") + fiup.FileName; string path = Server.MapPath("/upload/") + filename; fiup.SaveAs(path); }
} } }
二、上传到数据库Image字段: (一)传到数据库去 1.做数据库的操作代码。DA Data Image字段对应在程序里是byte[]类型
2.做界面上的代码。 a.把界面的值取出来 FileUpload1.FileBytes - 用来获得上传文件的二进制数据。 b.送到数据库去
(二)从数据库中找出来,显示出来 法一:会生成垃圾文件 在服务端生成一个JPG,把这个JPG的路径赋给Image控件
法二:单独做一个用来显示图片二进制数据的页面。把这个页面赋给Image控件。
我的;
页面一:
protected void Button2_Click(object sender, EventArgs e)//上传到数据库 { ImageshujuData da = new ImageshujuData(); da.Iname = FileUpload1.FileName; da.Ipath = FileUpload1.FileBytes; ImageshujuDA im=new ImageshujuDA(); im.Insert(da); } protected void llimage_Click(object sender, EventArgs e)//从数据库中浏览图片 { Image1.ImageUrl = "Showimage.aspx?id="+TextBox1.Text; }
页面二:
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; using DA; using Data; public partial class Showimage : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { string iid=Request["id"].ToString(); int imid = Convert.ToInt32(iid); ImageshujuData da = new ImageshujuDA().Select(imid); if (da != null) { byte[] pic = da.Ipath; Response.OutputStream.Write(pic,0,pic.Length); Response.End();
} } }
数据库:
drop table Imageshuju;--删除 create table Imageshuju--创建 ( Iid int identity primary key, Iname varchar(100) not null, Ipath image )
select * from Imageshuju;--查询
|
请发表评论