protected void Page_Load(object sender, EventArgs e)
{
string id = Request.QueryString["i"];
ProductBO _bo = BLLFactory.GetBal<ProductBO>(userInfo);
string[] rest = _bo.GetFileInfo(id);
string num = DateTime.Now.ToString("yyyyMMddHHmmss");
Response.ContentType = "text/plain";
Response.Charset = "utf-8";
if (string.IsNullOrEmpty(rest[0]) && string.IsNullOrEmpty(rest[1]))
{
Response.Write("FALSE^Template downloading failed.");
Response.End();
return;
}
//文件处理
MemoryStream ms = new MemoryStream();
byte[] buffer = null;
//FileInfo fileInfo = new FileInfo(path);
using (ZipFile file = ZipFile.Create(ms))
{
file.BeginUpdate();
file.NameTransform = new IndexController();//通过这个名称格式化器,可以将里面的文件名进行一些处理。默认情况下,会自动根据文件的路径在zip中创建有关的文件夹。
if (!string.IsNullOrEmpty(rest[0])) //rest[0],rest[1]为地址
{
file.Add(rest[0]);
}
if (!string.IsNullOrEmpty(rest[1]))
{
file.Add(rest[1]);
}
file.CommitUpdate();
buffer = new byte[ms.Length];
ms.Position = 0;
ms.Read(buffer, 0, buffer.Length);
Response.Clear();
Response.ClearContent();
Response.ClearHeaders();
Response.AddHeader("Content-Disposition", "attachment;filename=" + num + ".zip");
Response.AddHeader("Content-Length", buffer.Length.ToString());
Response.AddHeader("Content-Transfer-Encoding", "binary");
Response.ContentType = "application/octet-stream";
Response.ContentEncoding = System.Text.Encoding.GetEncoding("utf-8");
Response.BinaryWrite(buffer);
Response.Flush();
Response.End();
}
}
public class IndexController : ICSharpCode.SharpZipLib.Core.INameTransform
{
#region INameTransform 成员
public string TransformDirectory(string name)
{
return null;
}
public string TransformFile(string name)
{
return Path.GetFileName(name);
}
#endregion
}
从服务器下载文件
最新推荐文章于 2024-10-18 09:57:53 发布