通过url获取图片,把图片保存在sql server中

WebRequest myrequest = WebRequest.Create(CompanyLogoUrl);
                using (HttpWebResponse response = myrequest.GetResponse() as HttpWebResponse)
                {
                    if (response.StatusCode == HttpStatusCode.OK)
                    {
                        Stream rs = response.GetResponseStream();//rs.Length 此流不支持查找,先转为MemoryStream

                        var ms = StreamToMemoryStream(rs);
                        ms.Seek(0, SeekOrigin.Begin);
                        int buffsize = (int)ms.Length;
                        byte[] bytes = new byte[buffsize];
                        ms.Read(bytes, 0, buffsize);

                        string strPictureType = Path.GetExtension(CompanyLogoUrl).Substring(1);//图片类型   
                        var supportedTypes = new[] { "pjpeg", "jpeg", "jpg", "gif", "png" };//{ "pjpeg", "jpeg", "jpg", "gif", "bmp", "png" }

                        if (supportedTypes.Contains(strPictureType, StringComparer.OrdinalIgnoreCase))
                        {
                            if (buffsize != 0 && buffsize <= 512000)
                            {
                                string fileName = Path.GetFileName(CompanyLogoUrl);

                                string fileID = ServiceFactory.GetFileCenterService().SaveFile(fileName, bytes);//保存在数据库方法

                                string path = ConfigrationHelper.FileCenterDomain + "/Home/GetFile/" + fileID;

                                result = path + "$" + fileName;

                            }

                        }
                        ms.Flush(); ms.Close();
                        rs.Flush(); rs.Close();
                    }
                }

protected MemoryStream StreamToMemoryStream(Stream instream)
        {
            MemoryStream outstream = new MemoryStream();
            int bufferLen = 512000;//图片大小限制
            byte[] buffer = new byte[bufferLen];
            int count = 0;
            while ((count = instream.Read(buffer, 0, bufferLen)) > 0)
            {
                outstream.Write(buffer, 0, count);
            }
            return outstream;
        }

 

posted @ 2017-04-13 10:54  raymondyin  阅读(1274)  评论(0编辑  收藏  举报