在wpf使用webclient的downloadfile,下载完之后打开之后显示图片格式不对,没有显示图片就很奇怪。望能解决。
已解决
代码贴出来看看
try
{
if (!string.IsNullOrEmpty(url))
{
address = YBHelper.YBUtileTool.getAppPath(@"\LayOutData\") + url.Substring(url.LastIndexOf("/") + 1);
if (!File.Exists(address))
{
webClient.DownloadFile(url, address);//就是用这个下载资源的
}
PlaySouce.Add(address);
if (File.Exists(address)) return true;
}
}
catch(Exception ex)
{
log.WriteLog(ex.Message,Log.LogType.NetWork,ex.StackTrace);
}
return false;
/// <summary>
/// 下载资源文件
/// </summary>
/// <param name="url">网络地址</param>
/// <param name="address">下载到本地的地址</param>
/// <returns></returns>
public static bool DownLoadFile(string url,string address)
{
try
{
if (!string.IsNullOrEmpty(url))
{
if (!File.Exists(address))
{
//webClient.Headers.Add("Accept-Encoding", "gzip,deflate");
byte[] byteArr = webClient.DownloadData(url);
string contentEncoding = webClient.ResponseHeaders["Content-Encoding"];
if (contentEncoding == "gzip")
{
Stream stream = new MemoryStream(byteArr);
using (Stream zipStream = new GZipStream(stream, CompressionMode.Decompress))
{
using (Stream fileStream = new FileStream(address, FileMode.Create))
{
byte[] read = new byte[1024];
int readlen = zipStream.Read(read, 0, read.Length);
while (readlen > 0)
{
fileStream.Write(read, 0, read.Length);
readlen = zipStream.Read(read, 0, read.Length);
}
stream.Close();
fileStream.Close();
zipStream.Close();
}
}
}
else
{
Stream stream = new MemoryStream(byteArr);
using (Stream fileStream = new FileStream(address,FileMode.Create))
{
byte[] read = new byte[1024];
int readlen = stream.Read(read, 0, read.Length);
while (readlen > 0)
{
fileStream.Write(read, 0, read.Length);
readlen = stream.Read(read, 0, read.Length);
}
stream.Close();
fileStream.Close();
}
}
}
}
}
catch (Exception ex)
{
log.WriteLog(ex.Message, Log.LogType.NetWork, ex.StackTrace);
}
return false;
}
就是判断是否压缩文件了,然后解压,可以改改。