ASP.NET(与MySQL结合) .NETFramework4.0以下及webform 关于将图片以二进制方式上传到数据库 以fileupload控件为上传控件
2021/8/5 19:06:31
本文主要是介绍ASP.NET(与MySQL结合) .NETFramework4.0以下及webform 关于将图片以二进制方式上传到数据库 以fileupload控件为上传控件,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
图片二进制上传需要用到一个命名空间,using System.IO,很多刚开始初学ASP.NET可能很少用这个。我这个比较适合ASP.NET .netframework4.0以下的初学者。
先上.aspx前端控件代码,设置两个简单控件(拖动就行)
<asp:FileUpload ID="FileUpload1" runat="server" /> <br /> <asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="Button" />
再来后端代码,我将进行分步写
首先要引进这些命名空间,包括MySQL库,系统数据操作库以及系统输入输出操作库
using System.IO; using MySql.Data.MySqlClient; using System.Data;
接着写上fileupload上传方式,这个是可以上传完后删除的。要图片数据数据写入数据库后才能删除。我这里卸载前面的Button控件创立的函数中
首先先进行的是上传工作。这个部分代码可以单独用,专门用来管理上传的。不过这里没用try来纠错,后面自己加就行了。
string filename = FileUpload1.FileName; string nametession = filename.Substring(filename.LastIndexOf(".") + 1); string savemap = Server.MapPath("fileupload/") + filename; if (nametession.ToLower() == "jpg" || nametession.ToLower() == "bmp")//这个可以很多种上传格式,能改就行 { FileUpload1.PostedFile.SaveAs(savemap); }
上面的是上传方式,我将后面一部分给除去了,如果只是单纯的想用图片的路径保存在数据库,将路径存到数据库就行。为了方便,我还是将后面的代码写入上面那个判断中。完整的图片以二进制方式存入数据库代码方式。注意中间的MySqlParameter以及MySqlDbType,如果是不同数据库,就写相应的名称就行。大家注意看里面的注释进行理解
string filename = FileUpload1.FileName; string nametession = filename.Substring(filename.LastIndexOf(".") + 1); string savemap = Server.MapPath("fileupload/") + filename; if (nametession.ToLower() == "jpg" || nametession.ToLower() == "bmp") { FileUpload1.PostedFile.SaveAs(savemap); /*接着上面的代码*/ byte[] by = new byte[FileUpload1.PostedFile.ContentLength];//图片以二进制上传需要用到byte数组存储 Stream st = FileUpload1.PostedFile.InputStream;//关键一步,读取上传的文件 st.Read(by, 0, FileUpload1.PostedFile.ContentLength);//关键一步,将上传文件数组进行读取,注意三个参数,字符组,偏移数以及长度,缺一不可 string mysqlcon = System.Configuration.ConfigurationManager.ConnectionStrings["ConnString"].ToString();//数据库连接字符串 /*上面连接可以写成 string mysqlcon = Data Source=*测试一般用localhost*;User ID=root;Password=*自己写密码*;DataBase=*你的数据库* */ MySqlConnection con = new MySqlConnection(mysqlcon); con.Open(); string strsql = "INSERT INTO b(pic)VALUES(@pic)"; MySqlCommand com = new MySqlCommand(strsql,con);//这个要写在前面,否则无效 com.Parameters.Add(new MySqlParameter("@pic",MySqlDbType.Blob));//添加参数 /*一定要用为数据库变量赋值这种方式,要不然数组无法直接保存到mysql,输入到数据库的值永远为System.Byte[],转换为十六进制到数据库则数据库只能是文本十六进制*/ com.Parameters["@pic"].Value = by;//给参数赋值 com.ExecuteNonQuery(); com.Dispose(); con.Close(); con.Dispose(); } else { Response.Redirect("<script>alert('error!');</script>"); }
大功告成,用Navicat自己看一下,选这里
这篇关于ASP.NET(与MySQL结合) .NETFramework4.0以下及webform 关于将图片以二进制方式上传到数据库 以fileupload控件为上传控件的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2022-03-01沐雪多租宝商城源码从.NetCore3.1升级到.Net6的步骤
- 2024-11-15C#中怎么从PEM格式的证书中提取公钥?-icode9专业技术文章分享
- 2024-11-14云架构设计——如何用diagrams.net绘制专业的AWS架构图?
- 2024-05-08首个适配Visual Studio平台的国产智能编程助手CodeGeeX正式上线!C#程序员必备效率神器!
- 2024-03-30C#设计模式之十六迭代器模式(Iterator Pattern)【行为型】
- 2024-03-29c# datetime tryparse
- 2024-02-21list find index c#
- 2024-01-24convert toint32 c#
- 2024-01-24Advanced .Net Debugging 1:你必须知道的调试工具
- 2024-01-24.NET集成IdGenerator生成分布式全局唯一ID