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的更多相关文章

  1. Toolkit.getImage获取图片

    public class Img { private static final Toolkit tk = Toolkit.getDefaultToolkit(); public static fina ...

  2. Browser GetImage

    using Microsoft.Win32; using System; using System.ComponentModel; using System.Drawing; using System ...

  3. js调用echarts getImage方法 将图表转换为img

    function chart(opt,id,chartName){//配置option的方法 var chartName = echarts.init(document.getElementById( ...

  4. Clipboard.GetImage() Clipboard获取粘贴板内容为null的解决办法

    将线程启动模式设置为 sta 单线程 简介 STA:   Single-Thread   Apartment,   中文叫单线程套间.就是在COM库初始化的时候创建一个内存结构,然后让它和调用CoIn ...

  5. .net点选验证码实现思路分享

    哈哈好久没冒泡了,最进看见点选验证码有点意思,所以想自己写一个. 先上效果图 如果你被这个效果吸引了就请继续看下去. 贴代码前先说点思路: 1.要有一个汉字库,并按字形分类.(我在数据库里是安部首分类 ...

  6. 开源免费且稳定实用的.NET PDF打印组件itextSharp(.NET组件介绍之八)

    在这个.NET组件的介绍系列中,受到了很多园友的支持,一些园友(如:数据之巅. [秦时明月]等等这些大神 )也给我提出了对应的建议,我正在努力去改正,有不足之处还望大家多多包涵.在传播一些简单的知识的 ...

  7. JBPM

    JBPM简介 什么是jbpm JBPM,全称是Java Business Process Management(业务流程管理),它是覆盖了业务流程管理.工作流.服务协作等领域的一个开源的.灵活的.易扩 ...

  8. mono for android 读取网络远程图片

    布局 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android=& ...

  9. c#文件操作

    1.创建文件夹 //using System.IO; Directory.CreateDirectory(%%1);   2.创建文件 //using System.IO; File.Create(% ...

随机推荐

  1. [读书笔记]ASP.NET的URL路由引擎

    作用 一般的URL: 举例:http://www.myapp.com/app.aspx?id=2&sessionid=29320xafafa02fa0zga0g8a0z 缺点: 不美观,不清晰 ...

  2. 用ICSharpCode.SharpZipLib进行压缩

    今天过中秋节,当地时间(2013-09-08),公司也放假了,正好也闲着没事,就在网上学习学习,找找资料什么的.最近项目上可能会用到压缩的功能,所以自己就先在网上学习了,发现一个不错的用于压缩的DLL ...

  3. VC++ 网络编程总结(二)

    2.基本的Windows Socket API编程 需要在程序中添加下面的包含语句:#include <winsock2.h>   #pragma comment( lib, " ...

  4. Programming pages of Jasper Neumann

    http://programming.sirrida.de/ Discussion topics Bit permutations Download source files List of func ...

  5. Slony-I中对storelisten出错的处理

    客户质询的现象是: Slony-I运行中,log中发现FATAL信息: FATAL storeListen: unknown node ID 出现了上述错误后,再看后继的log,又恢复正常运行了. 客 ...

  6. Leetcode: Longest Palindromic Substring. java

    Given a string S, find the longest palindromic substring in S. You may assume that the maximum lengt ...

  7. nslookup 查询IPv6

    > nslookup>  set type=AAAA > ipv6 domain name  (ipv6.google.com, time.buptnet.edu.cn)

  8. Java带包编译运行

    package cn.togeek.job; public class Test { public static void main(String[] args) throws Exception { ...

  9. CentOS 6.5 源码安装MySQL5.6

    1:下载安装cmake (mysql5.5以后是通过cmake来编译的) #http://download.csdn.net/detail/csxuedn/7976005 #wget http://w ...

  10. javascript优化

    javaScript是一门解释性的语言.它不像java.C#等程序设计语言.由编译器先进行编译再运行.而是直接下载到用户的客户端进行执行.因此代码本身的优劣就直接决定了代码下载的速度以及执行的效率. ...