C# 怎么实现上传图片到数据库 代码

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C# 怎么实现上传图片到数据库 代码相关的知识,希望对你有一定的参考价值。

有一个PIctureBox控件,有一个“浏览”控钮,一个“上传”按钮,要怎么实现点浏览的时候可以把从本地图片显示到pictrueBox控件上,点上传的时候把图片写入库中,怎么实现啊,求代码。(不要WEB版的。)

我给你一个小例子,你自己看看吧,可能会由于我们数据库软件不同,可能需要修改一下。(我用的是 SQL Server)

下面是我自己做的一个类,实例化后即可使用。

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Data.OleDb;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Data.SqlClient;
using System.IO;

namespace SQL_Query.MyClass


class ConnectionSQLClass



private string _server = string.Empty;

private string _database = string.Empty;

private string _uid = string.Empty;

private string _pwd = string.Empty;

private string _sqlConnection = string.Empty;

public ConnectionSQLClass(string server, string database, string uid, string pwd)



_server = server;

_database = database;

_uid = uid;

_pwd = pwd;

_sqlConnection = "server=" + _server + ";database=" + _database + ";uid=" + _uid + ";pwd=" + _pwd;



//插入图片(table 表名、fieldName 存储图片字段名、imagePath 图片完整路径)

public bool Insert_Image(string table, string fieldName, string imagePath)



try



FileStream fs = new FileStream(imagePath, FileMode.Open);

byte[] imagebytes = new byte[fs.Length];

BinaryReader br = new BinaryReader(fs);

imagebytes = br.ReadBytes(Convert.ToInt32(fs.Length));

//打开数所

SqlConnection con = new SqlConnection(_sqlConnection);

con.Open();

SqlCommand com = new SqlCommand("insert into " + table + "(" + fieldName + ")" + " values(@ImageList)", con);

com.Parameters.Add("ImageList", SqlDbType.Image);

com.Parameters["ImageList"].Value = imagebytes;

com.ExecuteNonQuery();

con.Close();



catch return false;

return true;



//读取 fieldName 该字段中符合条件的所有图片(sql SQL查询语句、fieldName 存储图片字段名)

public List<Image> Get_Image(string sql, string fieldName)



List<Image> InformatoinCollection = new List<Image>();

SqlConnection cn = new SqlConnection(_sqlConnection);

try



cn.Open();

SqlCommand cm = new SqlCommand(sql, cn);

SqlDataReader dr = cm.ExecuteReader();

//MessageBox.Show(dr.HasRows.ToString());

if (!dr.HasRows)



return null;



while (dr.Read())



MemoryStream ms1 = new MemoryStream((byte[])dr[fieldName]);

Image image = Image.FromStream(ms1, true);

InformatoinCollection.Add(image);



dr.Close();

cn.Close();



catch



InformatoinCollection = null;



return InformatoinCollection;





希望对你有帮助!
参考技术A 。。。提供方法和逻辑。
用流读文件(这里是图片)。然后保存在byte[] 里面。存放到数据库就可以了啊。

。。。保存图片到系统磁盘上面,然后给数据库里面存一个图片路径。

上次文件的控件。file有。SaveAS,Save方法的。
参考技术B 最简单的方法,数据库只存储图片的路径,浏览图片和存储图片无任何关系。如果要绑定图片的话就通过从数据库中获取到指定的图片路径搜索到实际图片。将图片填充到控件上。

c# 本地图片 上传到另一个服务器

程序是在我本地运行的,图片是要上传到一台服务器上怎么弄啊

如果图存存到本机上就好办了,咋能让他上传到服务器啊!

我是用asp.net c#的,给我具体的代码好吗
大家还是没明白我的意思,

我的意思是说,在服务器A操作上传图片,而这些图片是保存到另一个服务器B。。

要注意是两个不同的服务器?大家明白不?

我表达还不够清楚吗?

在网上查查上传图片的代码。介绍jmail的上传附件的就有 下面的是按钮点击方法
html:

<asp:FileUpload ID="fufujian" runat="server" style ="border-left-style:none;border-right-style:none;border-top-style:none; " />
<asp:Button ID="Button1" runat="server" onclick="Button1_Click" Text="Button" />

********************************************************************************************************************************************************************************************************************
.cs文件
按钮点击

if (fufujian.HasFile)

//指定上传文件在服务器上的保存路径
string savePath = Server.MapPath("~/upload/");
//检查服务器上是否存在这个物理路径,如果不存在则创建
if (!System.IO.Directory.Exists(savePath))

//需要注意的是,需要对这个物理路径有足够的权限,否则会报错
//另外,这个路径应该是在网站之下,而将网站部署在C盘却把上传文件保存在D盘
System.IO.Directory.CreateDirectory(savePath);

savePath = savePath + "\\" + fufujian.FileName;
fufujian.SaveAs(savePath);//保存文件
//不过需要注意的是,在客户端访问却需要指定的是URL地址,而不是在服务器上的物理地址
// Response.Write(savePath);
// Response.End();
//Response.Write(string.Format("<a href='upload/0'>upload/0</a>", fufujian.FileName));
//Response.End();
参考技术A 你问题都没问明白,反正我是没全理解
如果你B上能部署应用的话,你放个webservice,文件传到A上后,调B的service由B的service存到B中就可以了。
如果你B和A能共享,那就更简单了,直接存就好了
如果你B开了FTP,那也简单,传到A后FTP到B上就可以了
如果你B能放应用程序的话,做个服务放上面,开个端口,等着A把文件送给服务就可以了
如果.....
可能性太多,没法回
参考技术B 把图片给序列化,保存到服务器不就行了
你在B服务器写个WebServise,上传到A服务器的同时上传到B服务器啊,或者直接上传到B服务器
参考技术C 具体的错误提示呢?

很明显,路径错误了
//把缩略图保存到指定的虚拟路径
newimage.Save(serverpath);
检查检查写入的图片路径是不是正确

具体的错误信息呢?

先给你整个网站用户权限设定为everyone可读可写看看
参考技术D 大家还是没明白我的意思,

我的意思是说,在A域名的后台操作上传图片,这些图片保存到另一个服务器B域名。。

要注意是两个不同的服务器?大家明白不?

以上是关于C# 怎么实现上传图片到数据库 代码的主要内容,如果未能解决你的问题,请参考以下文章

c# 本地图片 上传到另一个服务器

WPF 如何上传图片到服务器,并在客户端获取显示图片?

C#图片上传到文件夹

uniapp怎么实现选择和上传图片分开

C# winForm程序中,我上传 一张图片,如何将本页面的图片刷新,并且将主窗体的那个图片也刷新呢?

php上传图片和显示,如何实现?或者有没有插件之类的? 上传到数据库是图片文件也行,图片名也行。