页面的图片绑定用相对路径没问题,如:
img.ImageUrl = SystemConfig.PicPath + picPath;
其中SystemConfig.PicPath是读取配置文件的信息。
然而,文件下载如pdf下载的时候绑定相对路径却出错,如:
Path = SystemConfig.pdfPath + pdfPath; //错误
转换为物理路径
Path = Request.MapPath(SystemConfig.pdfPath + pdfPath); //正确
不知是否是服务器配置文件的问题;
下载文件函数。
/// <summary>
/// 下载SamplePage.
/// </summary>
/// <param name="FilePath">文件路径</param>
protected void SamplePageFileDownLoad(string FilePath)
{
Stream iStream = null;
byte[] buffer = new byte[10000];
int length;
long dataToRead;
if (File.Exists(FilePath))
{
string filename = Path.GetFileName(FilePath);
try
{
using (iStream = new FileStream(FilePath, FileMode.Open, FileAccess.Read, FileShare.Read))
{
dataToRead = iStream.Length;
Response.ContentType = "application/octet-stream";
Response.AddHeader("Content-Disposition", "attachment; filename=" + filename);
while (dataToRead > 0)
{
if (Response.IsClientConnected)
{
length = iStream.Read(buffer, 0, 10000);
Response.OutputStream.Write(buffer, 0, length);
Response.Flush();
buffer = new byte[10000];
dataToRead = dataToRead - length;
}
else
{
dataToRead = -1;
}
}
}
}
catch (Exception ex)
{
MyEventLog.Log.Error(ex.ToString());
throw (ex);
}
finally
{
if (iStream != null)
iStream.Close();
}
}
}