Advertisement

C# 根据url获取文件流流

阅读量:
复制代码
    	/// <summary>
    	/// 根据url获取流
    	/// </summary>
    	/// <param name="url">路径</param>
    	public static MemoryStream GetImage(string url)
    	{
    		HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
    		request.Method = "GET";
    		WebResponse response = request.GetResponse();
    		var img = Image.FromStream(response.GetResponseStream());
    		MemoryStream memoryStream = new MemoryStream();
    		img.Save(memoryStream, ImageFormat.Png);
    		memoryStream.Seek(0, SeekOrigin.Begin);
    		return memoryStream;
    	}
    
    	/// <summary>
    	/// http下载文件
    	/// </summary>
    	/// <param name="url">下载文件地址</param>
    	/// <returns></returns>
    	public static Stream HttpDownload(string url)
    	{
    		using (var client = new WebClient())
    		{
    			string tempFile = Path.GetTempFileName();
    			client.DownloadFile(url, tempFile);//下载临时文件
    			Console.WriteLine("Using " + tempFile);
    			return FileToStream(tempFile, true);
    		}
    	}
    	/// <summary>
    	/// 文件转流
    	/// </summary>
    	/// <param name="fileName">文件路径</param>
    	/// <param name="isDelete">是否删除临时文件</param>
    	/// <returns></returns>
    	public static Stream FileToStream(string fileName, bool isDelete = false)
    	{
    
    		//打开文件
    
    		FileStream fileStream = new FileStream(fileName, FileMode.Open, FileAccess.Read, FileShare.Read);
    
    		// 读取文件的 byte[]
    
    		byte[] bytes = new byte[fileStream.Length];
    
    		fileStream.Read(bytes, 0, bytes.Length);
    
    		fileStream.Close();
    
    		// 把 byte[] 转换成 Stream
    
    		Stream stream = new MemoryStream(bytes);
    		if (isDelete)
    		{
    			File.Delete(fileName);//删除临时文件
    		}
    		return stream;
    
    	}

全部评论 (0)

还没有任何评论哟~