int i = 0;
foreach (DataRow row in ds.Tables[0].Rows)
{
context.Response.ContentType = "image/jpeg";
context.Response.ClearContent();
string dcm_path = row["REFERENCE_FILE"].ToString();
string share_ip = SYS_APP_CONFIG.GetAppConfigValue("dcm_share_ip");
zipedFile = row["PATIENT_ID"].ToString();
string tuname = row["PATIENT_NAME"].ToString();
img = DicomUtility.GetJpegFromDcm(dcm_path, System.Drawing.Imaging.ImageFormat.Jpeg);//这是获取一个jpeg格式的图片
Image imgg = BytToImg(img);
zipname = tupian_url + tuname+i.ToString();
url = "d:\\webtupian" + "/" + tupian_url + "/" + zipedFile;
if (!Directory.Exists(url))
{
Directory.CreateDirectory("d:\\webtupian" + "/" + tupian_url + "/" + zipedFile);//创建新路径
}
string name = tuname + i.ToString();
imgg.Save("d:\\webtupian" + "/" + tupian_url + "/" + zipedFile + "/" + name + ".jpeg");//把图片存到 这个路径
listimage.Add("d:\\webtupian" + "/" + tupian_url + "/" + zipedFile + "/" + name + ".jpeg");//把图片路径添加到这个数组
i++;
}
using (Ionic.Zip.ZipFile zip = new Ionic.Zip.ZipFile(zipname, Encoding.Default))
{
foreach (string fileToZip in listimage)
{
using (FileStream fs = new FileStream(fileToZip, FileMode.Open, FileAccess.ReadWrite))
{
byte[] buffer = new byte[fs.Length];
fs.Read(buffer, 0, buffer.Length);
string fileName = fileToZip.Substring(fileToZip.LastIndexOf("\\") + 1);
zip.AddEntry(fileName, buffer);
}
}
zip.Save(context.Response.OutputStream);
}
context.Response.End();
return "1";
执行完之后没有任何反应。下载不成功。上面都正常,就添加到zip下载的时候就没任何反应了。执行完毕之后,下载不行,然后到处也都找不到这个zip文件。
不是返回zip吗,怎么Response.ContentType是image。
改了这个还是不行,执行完毕之后还是没反应,只是保存图片到d盘成功了。可是就是压缩完之后下载就是没什么反应,大神您帮着看看吧!谢谢了
imgg .Dispose() ,在imgg.Save方法后面加上这句。记得要释放资源。
不行。还是下载不行
@蓉宇-轩:
试试看这样,先保存到本地,再读取出来,再返回
1. zip.Save(本地路径);
2. File.Read出来
3. 将压缩文件流写入Response.OutputStream
@SimpleCoder: 给个例子行不
@蓉宇-轩: 已经说的很清楚了。具体的代码自己动手写。