上传控件和image控件以及图片插入数据库

一、上传控件FileUpload

 public void SaveAs(string filename)  保存上载文件的内容。参数:filename  保存的文件的名称即文件保存的路径。

this.FileUpload1.PostedFile.SaveAs(“保存的文件的名称 ”);

FileUpload1.FileName是要保存的文件的文件名;

FileUpload1.PostedFile.ContentType是要保存的文件的格式;

FileUpload1.PostedFile.ContentLength是要保存的文件的大小;判断这个属性时要先运行Web.config中的代码,上传控件能传的最大

值是4兆,而Web.config默认也是4兆所以在Web.config中也要写代码将最大值修改一下,写上<httpRuntime maxRequestLength="40000"/>

将最大值改为40000字节,只要大过最大的上传文件即可。

web.config中规定的上传文件大小指的是所有上传文件大小的和不能超过这个设定值

2、上传多个文件,即写入多个上传控件

多个控件上传,应 HttpFileCollection files = Request.Files;此方法
         获取采用多部分 MIME 格式的由客户端上载的文件的集合。      
        返回结果:
           System.Web.HttpFileCollection 对象,表示客户端上载的文件集合。System.Web.HttpFileCollection
          对象的项属于 System.Web.HttpPostedFile 类型。

所以保存时就应该循环保存。

HttpFileCollection files = Request.Files;

 for (int i = 0; i < files.Count; i++)
            {
                HttpPostedFile file = files[i];//HttpPostedFile file,是提供对客户端已上载的单独文件的访问。
  
                file.SaveAs("D:\\"+file.FileName);
            }
如果没有选择上传文件,则文件名称为空,直接上传会报错,這时候需要判断文件名称是否为空,然后在上传

即完整的代码是:

HttpFileCollection files = Request.Files;
            for (int i = 0; i < files.Count; i++)
            {
                HttpPostedFile file = files[i];
                if (file.FileName!="")
                {
                file.SaveAs("D:\\"+file.FileName);

                }
            }

二、image控件,上传图片

对于Image控件,建议不要使用跟路径,而应该使用相对路径

image控件有一个属性可以接收图片的路径,而对于客户端来说图片是用户选择的,所以应该由用户上传图片,将图片显示在

控件中。

如果我们将项目传到另一台计算机上,如果图片的保存路径是根路径(带有磁盘的路径)例如存在D盘,但新的计算器不包括

D盘,那将会带来错误。所以我们应将图片存在项目一个文件夹中,而且可以动态获取文件夹的路径。

1、在资源管理器中添加一个文件夹,例如图中的images文件夹

2、动态获取路径,将图片上传到路径中。

 //MapPath根据文件或文件夹在当前项目的路径来获取其根路径
            //MapPath("")空的时候找到的是当前项目的路径,可以在其中写上你想找的文件的路径
            //string name = this.FileUpload1.FileName;
            //string str=Server.MapPath("");
            //Response.Write(str);
            //this.FileUpload1.PostedFile.SaveAs(
str+@"\image\"+name);
            //this.Image1.ImageUrl = "image\\"+name;
            //image控件只能接受相对路径,不能接收绝对路径既有磁盘的路径
            string name = this.FileUpload1.FileName;
            string str = Server.MapPath("
\\image\\");
            Response.Write(str);
            this.FileUpload1.PostedFile.SaveAs(str + name);
            this.Image1.ImageUrl = "image\\" + name;//相对路径

三、将图片的路径插入到数据库中

1、在数据库中添加一个字段

2、将图片的路径保存住。点击上传按钮时会使页面发生刷新,图片的路径会被抹掉。所以image控件的ImageUrl属性并未保存住路径。

                       this.Image1.ImageUrl = "images/" + FileUpload1.FileName;
                        ViewState["imgurl"] = "images/" + FileUpload1.FileName;//此方法可以保存住。

ViewState 获取状态信息的字典,这些信息使您可以在同一页的多个请求间保存和还原服务器控件的视图状态。

四、当由一个页面跳到另一个页面时,如何保存前一个页面中的信息呢?

例如,利用前页面的用户名在第二个页面中查询他的基本信息。并显示他的用户名。

利用这个方法进行保存: 

Session["username"] = this.txbUserName.Text.Trim();//如果都用这个保存会占很多内存,所以会根据条件在数据库中查询。

Session

获取 ASP.NET 提供的当前 Session 对象。
       返回结果:    当前会话状态数据。

三和四中的方法不能混用。

 

 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
使用PictureBox控件上传图片数据库,需要完成以下几个步骤: 1. 添加PictureBox控件上传按钮控件到窗体上。 2. 双击上传按钮控件,在事件处理程序中打开文件对话框,选择需要上传图片文件。 3. 将图片文件读取为二进制数据,并将其保存到一个变量中。 4. 使用ADO.NET连接到数据库,执行INSERT语句将二进制数据插入数据库中对应的表中。 下面是一个简单的示例: ```csharp private void btnUpload_Click(object sender, EventArgs e) { OpenFileDialog openFileDialog1 = new OpenFileDialog(); openFileDialog1.Filter = "Image Files (*.bmp;*.jpg;*.png)|*.bmp;*.jpg;*.png"; openFileDialog1.ShowDialog(); if (openFileDialog1.FileName != "") { // 将图片读取为二进制数据 byte[] imageBytes = File.ReadAllBytes(openFileDialog1.FileName); // 连接到数据库 using (SqlConnection conn = new SqlConnection("Data Source=localhost;Initial Catalog=MyDatabase;Integrated Security=True")) { // 执行INSERT语句将二进制数据插入数据库中 using (SqlCommand cmd = new SqlCommand("INSERT INTO Images (ImageData) VALUES (@ImageData)", conn)) { cmd.Parameters.AddWithValue("@ImageData", imageBytes); conn.Open(); cmd.ExecuteNonQuery(); } } } } ``` 在这个示例中,我们使用了OpenFileDialog控件来打开文件对话框,选择需要上传图片文件。然后使用File.ReadAllBytes方法将图片文件读取为二进制数据,将其保存到imageBytes变量中。接着,我们使用ADO.NET连接到数据库,执行INSERT语句将二进制数据插入Images表中的ImageData列中。 需要注意的是,这个示例中仅仅是将图片的二进制数据保存到了数据库中,如果需要在PictureBox控件上显示图片,需要从数据库中读取二进制数据,并将其转换为Image对象,然后将Image对象赋值给PictureBox控件Image属性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

猿猿网页设计(yywyss365)

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值