62,046
社区成员
发帖
与我相关
我的任务
分享
private void ExportFile()
{
string sID = GetUrlParam("id");
string sItem = GetUrlParam("item");
if (sID != "" && sItem != "")
{
int id = 0, item = 0;
int.TryParse(sID, out id);
int.TryParse(sItem, out item);
model = bll.GetModel_Attach(item, id);
if (model != null)
{
if (model.AttachFile != null)
{
if (FileIsPicture(model.FileName)) // 如果文件是图片,则直接打开
{
// Response.BinaryWrite(Convert.FromBase64String(model.AttachFile));
byte[] pict = Convert.FromBase64String(model.AttachFile);
Response.ContentType = "image/bmp";
Response.OutputStream.Write(pict, 0, pict.Length);
}
else //不是图片,则直接下载
{
byte[] pict = Convert.FromBase64String(model.AttachFile);
Response.ContentType = "application/octet-stream";
//通知浏览器下载文件而不是打开
//Response.AddHeader("Content-Disposition", "attachment; filename=" + HttpUtility.UrlEncode(model.FileName, System.Text.Encoding.UTF8));
Response.HeaderEncoding = System.Text.Encoding.GetEncoding("gb2312"); // 解决文件名中文乱码
Response.AddHeader("Content-Disposition", "attachment; filename=" + model.FileName);
Response.BinaryWrite(pict);
Response.Flush();
Response.End();
}
}
}
else
{
Response.Write("<font color='red'>文件不存在!</font>");
}
}
}
private bool FileIsPicture(string sFileName)
{
List<string> listPicType = new List<string> { ".jpg",".bmp",".png"};
bool bResult = false;
foreach (string sType in listPicType)
{
bResult = sFileName.ToLower().EndsWith(sType);
if (bResult)
break;
}
return bResult;
}
private string GetUrlParam(string sParamName)
{
if (Request.Params[sParamName] != null && Request.Params[sParamName].Trim() != "")
return Request.Params[sParamName];
else
return "";
}