GetImage
check路径是是否有效,网络访问地址。notfound查找不到,httpstatuscode枚举数较多,根据自己想要的设置就好了。
public bool checkValid(string path)
{
HttpWebRequest request = HttpWebRequest.Create(path) as HttpWebRequest;
request.Method = "GET";
request.ProtocolVersion = new Version(1, 1);
HttpWebResponse response = request.GetResponse() as HttpWebResponse;
if (response.StatusCode==HttpStatusCode.NotFound)
{
return false;
}
return true;
}
根据网络地址还是本地路径,进行获取图片数据,保存到本地文件下。注意数据流的权限FileAccess.ReadWrite
保存有可能出错,在外层套了个try catch,不过各个节进行判断更好,能够拿到出错点。
if (url.IndexOf("http://") == 0 || url.IndexOf("https://") == 0)
{
WebRequest request = (WebRequest)HttpWebRequest.Create(url);
WebResponse response = request.GetResponse();
Stream stream = response.GetResponseStream();
FileStream fileStream = File.Create(filePath);
byte[] buffer = new byte[(int)response.ContentLength];
int numReadByte = 0;
while ((numReadByte = stream.Read(buffer, 0, (int)response.ContentLength)) != 0)
{
fileStream.Write(buffer, 0, numReadByte);
}
fileStream.Close();
stream.Close();
}
else
{
FileStream fs = File.Open(url, FileMode.Open, FileAccess.ReadWrite, FileShare.Read);
FileStream fileStream = File.Create(filePath);
Byte[] image = new Byte[(int)fs.Length];
int numReadByte = 0;
while ((numReadByte = fs.Read(image, 0, (int)fs.Length)) != 0)
{
fileStream.Write(image, 0, numReadByte);
}
fs.Close();
fileStream.Close();
}
GetImage的更多相关文章
- Toolkit.getImage获取图片
public class Img { private static final Toolkit tk = Toolkit.getDefaultToolkit(); public static fina ...
- Browser GetImage
using Microsoft.Win32; using System; using System.ComponentModel; using System.Drawing; using System ...
- js调用echarts getImage方法 将图表转换为img
function chart(opt,id,chartName){//配置option的方法 var chartName = echarts.init(document.getElementById( ...
- Clipboard.GetImage() Clipboard获取粘贴板内容为null的解决办法
将线程启动模式设置为 sta 单线程 简介 STA: Single-Thread Apartment, 中文叫单线程套间.就是在COM库初始化的时候创建一个内存结构,然后让它和调用CoIn ...
- .net点选验证码实现思路分享
哈哈好久没冒泡了,最进看见点选验证码有点意思,所以想自己写一个. 先上效果图 如果你被这个效果吸引了就请继续看下去. 贴代码前先说点思路: 1.要有一个汉字库,并按字形分类.(我在数据库里是安部首分类 ...
- 开源免费且稳定实用的.NET PDF打印组件itextSharp(.NET组件介绍之八)
在这个.NET组件的介绍系列中,受到了很多园友的支持,一些园友(如:数据之巅. [秦时明月]等等这些大神 )也给我提出了对应的建议,我正在努力去改正,有不足之处还望大家多多包涵.在传播一些简单的知识的 ...
- JBPM
JBPM简介 什么是jbpm JBPM,全称是Java Business Process Management(业务流程管理),它是覆盖了业务流程管理.工作流.服务协作等领域的一个开源的.灵活的.易扩 ...
- mono for android 读取网络远程图片
布局 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android=& ...
- c#文件操作
1.创建文件夹 //using System.IO; Directory.CreateDirectory(%%1); 2.创建文件 //using System.IO; File.Create(% ...
随机推荐
- 用JS或jQuery访问页面内的iframe,兼容IE/FF
用JS或jQuery访问页面内的iframe,兼容IE/FF js或者jQuery访问页面中的框架也就是iframe.注意:框架内的页面是不能跨域的! 假设有两个页面,在相同域下. index.htm ...
- Oracle用户、权限、角色管理
Oracle 权限设置一.权限分类:系统权限:系统规定用户使用数据库的权限.(系统权限是对用户而言). 实体权限:某种权限用户对其它用户的表或视图的存取权限.(是针对表或视图而言的). 二.系统权 ...
- Extjs随笔
{ columnWidth : .1, layout : 'form', items : [{ fieldLabel : "至", labelSeparator:'', label ...
- js查看浏览器类型和版本
var Sys = {}; var ua = navigator.userAgent.toLowerCase(); var s; var scan; (s = ua.match(/msie ([\d. ...
- grunt入门之grunt watch的使用
watch几乎是grunt必不可少的应用,一旦配置好watch,保存文件后将立即执行命令 安装方式如下: npm install grunt-contrib-watch --save-dev 安装好以 ...
- 由“大数据量Excel入库高效方式”瞥见“并联系统”之优势
使用场景: 当你有一个Excel文件,需要把其中的数据高速录入到数据库中,文件中包含10万条以上数据. 设计方案: 我们将整个过程分成三个阶段,A(装载Excel文件). ...
- MyEclipse7.0破解下载
MyEclipse7.0 下载地址:downloads.myeclipseide.com/downloads/products/eworkbench/7.0M1/MyEclipse_7.0M1_E3. ...
- 对.NET中Hashtable和ArryList的理解
1.HashTabel 在.NET Framework中,Hashtable是System.Collections命名空间提供的集合对象,同时它也是一个可变长的数组,用于处理和表现类似key/valu ...
- GridView 编辑修改
//点击gridview控件自带的编辑按钮时执行的事件 protected void gvNewsList_RowEditing(object sender, GridViewEditEvent ...
- oc-20-多态
/** 为什么父类可以访问子类继承自父类的方法,但是无法访问子类独有的方法? 1.编译器编译时: 编译器在编译时,只检查指针变量的类型,确定该指针变量类型里面有下面调用的方法,如果有该方法,编译器就认 ...