经验分享:C#上传图片转Base64字节存库并支持转换文件提供url读取
2013-09-03 18:46
966 查看
工作中经常需要用到图片上传功能,传统的存服务器目录方式在服务器迁移、部署和各种平台交互时操作不太方便,而图片资源存数据库是相对比较方便维护的方式了!以下贴出用C#存储和读取图片资源的一些方法:
/* ----------------------------------------------------------------------------
* 上传图片类
* 先读取图片资源转换成base64字节,再转换成字符串存库,无需上传文件到服务器目录
* ----------------------------------------------------------------------------
*/
using System.IO;
/*
* 提交数据部分
*/
int l = file_img1.PostedFile.ContentLength;
byte[] buffer = new byte[l];
Stream s = file_img1.PostedFile.InputStream;
try
{
s.Read(buffer, 0, l);
string imgByte = Convert.ToBase64String(buffer);
}
catch (Exception ex)
{
s.Close();
s.Dispose();
throw ex;
}
finally
{
s.Close();
s.Dispose();
}
string sqlText = string.Format("insert into tb_image(id,imgByte) values({0},'{1})", id, imgByte);
//保存到数据库...
/* ----------------------------------------------------------------------------
* 读取图片类
* 先从库里读取字符串,再转换成base64字节,通过文件输出流生成图片文件供url读取
* ----------------------------------------------------------------------------
*/
using System.IO;
string imgByte = ...//从库里读取数据赋值
//取得数据转换base64字节
byte[] buffer = Convert.FromBase64String(imgByte);
//定义图片文件保存目录及文件名
string imgPath = System.AppDomain.CurrentDomain.BaseDirectory.ToString() + "images\\demo\\imgfile_1.jpg";
if(!File.Exists(imgPath))
{
//定义输出流对象
FileStream fs = new FileStream(imgPath, FileMode.Create);
fs.Write(buffer, 0, (int)buffer.Length);
fs.Close();
}
//图片文件已成功输出,记住此图片相对路径供url访问
string domainPath = "../images/demo/imgfile_1.jpg";
//网页上图片即可访问此url:domainPath
/* ----------------------------------------------------------------------------
* 上传图片类
* 先读取图片资源转换成base64字节,再转换成字符串存库,无需上传文件到服务器目录
* ----------------------------------------------------------------------------
*/
using System.IO;
/*
* 提交数据部分
*/
int l = file_img1.PostedFile.ContentLength;
byte[] buffer = new byte[l];
Stream s = file_img1.PostedFile.InputStream;
try
{
s.Read(buffer, 0, l);
string imgByte = Convert.ToBase64String(buffer);
}
catch (Exception ex)
{
s.Close();
s.Dispose();
throw ex;
}
finally
{
s.Close();
s.Dispose();
}
string sqlText = string.Format("insert into tb_image(id,imgByte) values({0},'{1})", id, imgByte);
//保存到数据库...
/* ----------------------------------------------------------------------------
* 读取图片类
* 先从库里读取字符串,再转换成base64字节,通过文件输出流生成图片文件供url读取
* ----------------------------------------------------------------------------
*/
using System.IO;
string imgByte = ...//从库里读取数据赋值
//取得数据转换base64字节
byte[] buffer = Convert.FromBase64String(imgByte);
//定义图片文件保存目录及文件名
string imgPath = System.AppDomain.CurrentDomain.BaseDirectory.ToString() + "images\\demo\\imgfile_1.jpg";
if(!File.Exists(imgPath))
{
//定义输出流对象
FileStream fs = new FileStream(imgPath, FileMode.Create);
fs.Write(buffer, 0, (int)buffer.Length);
fs.Close();
}
//图片文件已成功输出,记住此图片相对路径供url访问
string domainPath = "../images/demo/imgfile_1.jpg";
//网页上图片即可访问此url:domainPath
相关文章推荐
- c#中字节数组byte[]、图片image、流stream,字符串string、内存流MemoryStream、文件file,之间的转换
- sql server 关于表中只增标识问题 C# 实现自动化打开和关闭可执行文件(或 关闭停止与系统交互的可执行文件) ajaxfileupload插件上传图片功能,用MVC和aspx做后台各写了一个案例 将小写阿拉伯数字转换成大写的汉字, C# WinForm 中英文实现, 国际化实现的简单方法 ASP.NET Core 2 学习笔记(六)ASP.NET Core 2 学习笔记(三)
- C# 使用FileUpload控件上传图片,将文件转换成二进制进行存储与读取
- ajax异步上传图片文件并将其转换为base64格式
- 图片批量上传组件分享(C# asp.net Ajax)上传图片,支持拖动排序。
- C#学习笔记之图片、字节数组、base64之间的转换
- 分享C# 利用POST上传图片文件方法[完美]
- c#中字节数组byte[]、图片image、流stream,字符串string、内存流MemoryStream、文件file,之间的转换
- 文件批量上传组件分享(C# asp.net Ajax)上传图片
- 分享C# 利用POST上传图片文件方法[完美]
- 视频经验---1对多媒体的支持能力验证 2格式转换3视频截图4屏幕录制5音视频采集6从文件生成流媒体7从设备生成实时流
- 一个实用的文件上传类and生成图片缩略图(只提供上传)
- 示例代码:利用Sps提供的remoting服务,把office文档在线转换成html文档(包括页面图片的文件)
- DropzoneJS是一个提供文件拖拽上传并且提供图片预览的开源类库.
- C# 图片转换为base64
- C#技术分享【Word转换成图片和PDF——2种方案】
- C#中图片与BASE64码互相转换
- [置顶] Android开发之将图片文件转化为字节数组字符串,并对其进行Base64编码处理
- c# 图片 与 BASE64 字符串 互相转换。
- C# 结合html5 批量上传文件和图片预览