• 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();
                    }
    
  • 相关阅读:
    Vue部署到nginx刷新后出现404页面的问题
    移动端rem布局方案
    Vue使用Mint-ui的Popup, Picker组件报错问题
    Vue稍微高级一点的选项卡—动态组件
    GMOJ 1283排列统计 题解
    GMOJ 1281旅行 题解
    Why Did the Cow Cross the Road I P 题解
    【USACO 2017 December Gold】A Pie for a Pie 题解
    2020.05.23【NOIP提高组】模拟 总结
    2020.05.03【NOIP提高组】模拟 总结
  • 原文地址:https://www.cnblogs.com/danlis/p/5086376.html
Copyright © 2020-2023  润新知