C#winform 中上传图片保存到数据库中?

C#winform 中上传图片保存到数据库中?,第1张

就是2中方法:

1:上传的相对路径到数据库中相应字段里,读取显示时,将控件(假设用的是Image控件)的ImageUrl属性指向该相对路径即可。

2:将以二进制流的方式整体上传到数据库里,读取显示时,以二进制流的方式整体读出。这种方法稍微麻烦一点,但保存的是整体到数据库里。

HTTPClient网上代码很多的 可以直接复制 然后再输入远程地址 另外在远程服务器那边写个Webservices 用于接收传过来的数据 很简单的 HTTPCLIENT里面的远程地址说白了就是调用远程服务器那边的这个WEBSERVICES

我不知道你在做什么项目哈 但是我知道一般用这种方法上传是用于基于WPF的silverlight上传和视频的方法 因为WPF是客户端 只有这种方法可以实现 其实还有很多方法的 思路是变化的 比如你可以把需要上传的转化为bitimage 然后将这个bitimage转化为byte[]类型传给服务器 服务器直接接受这个byte[] 然后服务器再将这个byte转化为就可以了 其实这只是一种方法而已 很多人给了他一个专业的术语 可以成为一种协议,很多做视频聊天 视频监控都可以用我说这种方法 本人亲测 CPU优化还算不错 用于商业项目是可以的

//这是一个上传的例子,上传其他文件都一样

string strFileFullName = SystemIOPathGetFileName(thisFileUpload1PostedFileFileName);

if (strFileFullNameLength > 0)

{

if (FileUpload1HasFile)

{

string newFileName = GetNewFileName(strFileFullName);

string path = ServerMapPath("[服务器端存储的路径]" + newFileName);

string pathSaveImg = ServerMapPath("[服务器端存储的路径]" + newFileName);

thisFileUpload1SaveAs(path);

[数据库字段]= "[服务器端存储的路径]" + newFileName;

}

else

{

MessageBoxShow(this, "找不到此"); return;

}

}

//跟据文件名产生一个由时间+随机数组成的一个新的文件名

//因为客户端上传的文件很可能会重名,所以要对文件名进行重命名

public static string GetNewFileName(string FileName)

{

Random rand = new Random();

string newfilename = DateTimeNowYearToString() + DateTimeNowMonthToString() + "m" +

DateTimeNowDayToString() + "d"

+ DateTimeNowSecondToString() + DateTimeNowMinuteToString()

+ DateTimeNowMillisecondToString()

+ "a" + randNext(1000)ToString()

+ FileNameSubstring(FileNameLastIndexOf(""), FileNameLength - FileNameLastIndexOf(""));

return newfilename;

}

不知道你对进行按比例缩小是指质量压缩还是尺寸变小

但是不管是哪一种改变, 这一步操作都可以放在程序中处理, 处理完成之后以流的方式存入数据库, 保存到数据库中是一串二进制数据, 建议保存的时候同时存储文件的格式, 为取出文件时做备用。

DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
网站模板库 » C#winform 中上传图片保存到数据库中?

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情