获取图片文件的二进制数组
2012-02-13 11:03
148 查看
这段时间在项目里面遇到一个问题,c#后台调用php的webservice传送图片到php服务端,于是采用了传递二进制数组的方法,方法如下(部分代码):
dName是图片文件的名称,
string fpath = Server.MapPath("~/pic") + dName + ".jpg";
FileStream fs = new FileStream(fpath,FileMode.Open); //获取文件流
byte[] fb = new byte[fs.Length]; //声明存储数据的二进制数组
fs.Read(fb, 0, fb.Length);//将文件流中的数据写入二进制数组
return fb; //返回数组
上面的代码在测试的时候提示,“文件被另外的进程在访问”,所以这里总是异常,后来在网上求解,有人给出了一种方法,设置它的共享方式,也就是做如下更改:
把FileStream fs = new FileStream(fpath,FileMode.Open);
改成下面的构造方式,
FileStream fs = new FileStream(fpath,FileMode.Open,FileAccess.Read,FileShare.ReadWrite);
问题解决啦。
原因是: new FileStream(fpath,FileMode.Open); 这种构造方法是默认为只读共享,而图片文件已经被别的写进程占用,所以这里读取会抛出异常;而new FileStream(fpath,FileMode.Open,FileAccess.Read,FileShare.ReadWrite);这种构造方法,在打开文件时,设置为读写共享方式,虽然文件被写进程占用,但是我们还是可以读这个文件。
dName是图片文件的名称,
string fpath = Server.MapPath("~/pic") + dName + ".jpg";
FileStream fs = new FileStream(fpath,FileMode.Open); //获取文件流
byte[] fb = new byte[fs.Length]; //声明存储数据的二进制数组
fs.Read(fb, 0, fb.Length);//将文件流中的数据写入二进制数组
return fb; //返回数组
上面的代码在测试的时候提示,“文件被另外的进程在访问”,所以这里总是异常,后来在网上求解,有人给出了一种方法,设置它的共享方式,也就是做如下更改:
把FileStream fs = new FileStream(fpath,FileMode.Open);
改成下面的构造方式,
FileStream fs = new FileStream(fpath,FileMode.Open,FileAccess.Read,FileShare.ReadWrite);
问题解决啦。
原因是: new FileStream(fpath,FileMode.Open); 这种构造方法是默认为只读共享,而图片文件已经被别的写进程占用,所以这里读取会抛出异常;而new FileStream(fpath,FileMode.Open,FileAccess.Read,FileShare.ReadWrite);这种构造方法,在打开文件时,设置为读写共享方式,虽然文件被写进程占用,但是我们还是可以读这个文件。
相关文章推荐
- C# 图片与字节数组(byte[])二进制相互转换,获取大小像素扩展名
- 使用xutils发送POST请求,携带json和图片二进制文件数据获取服务器端返回json数据
- C#中将图片文件转化为二进制数组-用于数据库存储
- 安卓获取res下的资源文件:string字符串、color颜色、dimen尺寸、array数组、drawable图片和xml、anim/animator动画、raw媒体、assets资源
- [MTK FP]用Python把二进制音频/图片文件转为数组
- 获取Drawable文件图片
- 获取手机中已安装apk文件信息(PackageInfo、ResolveInfo)(应用图片、应用名、包名等)
- 【Android】获取手机中已安装apk文件信息(PackageInfo、ResolveInfo)(应用图片、应用名、包名等)
- c/c++获取文夹下所有图片文件路径
- 二进制图片保存为jpg文件
- canny算法的实现(android加载图片,数组写入文件换行)
- 如何用Visual C#使用资源文件中资源(从资源文件中获取文字图片等)
- 【ASP.NET 进阶】获取MP3文件信息并显示专辑图片
- Java 文件 获取图片文件的类型
- 用javaScript获取文件,jpg图片大小
- 【Android】获取手机中已安装apk文件信息(PackageInfo、ResolveInfo)(应用图片、应用 ...
- 获取图片文件尺寸效率比较
- java获取文件exif信息-添加图片文字水印
- mybatis中 mapper.xml文件中,获取数组中指定的位置的数据
- php获取本地图片文件并生成xml文件输出具体思路