asp.net的web程序部署后,从服务器上下载的word文件,excel文件无权限打开
用asp.net的编写的web程序安装部署后,从服务器上下载的word文件,excel文件无权限打开(可以保存到本地,但是打开时word界面显示 无权限/或直接打开时word界面显示 无权限).显示大概如下的信息:"打开文件出错. 1.请检查文件权限 2.空间不足 3. ... ".
我在VS2008下生成运行时是可以上传下载文件的,但是安装后上传可以,下载后打开word,excel就出现这样的问题.txt文件不出现这样的问题.我是在vs调试的机子上直接安装的.
我怀疑是IIS的服务器权限设置的问题.不知道如何设置.
或是其他问题?请指教.
程序都已完成,vs环境操作没有问题,没有想到安装后会出现这样的问题.失败.
用asp.net的编写的web程序安装部署后,从服务器上下载的word文件,excel文件无权限打开(可以保存到本地,但是打开时word界面显示 无权限/或直接打开时word界面显示 无权限).显示大概如下的信息:"打开文件出错. 1.请检查文件权限 2.空间不足 3. ... ".
我在VS2008下生成运行时是可以上传下载文件的,但是安装后上传可以,下载后打开word,excel就出现这样的问题.txt文件不出现这样的问题.我是在vs调试的机子上直接安装的.
我怀疑是IIS的服务器权限设置的问题.不知道如何设置.
或是其他问题?请指教.
程序都已完成,vs环境操作没有问题,没有想到安装后会出现这样的问题.失败.
可能是服务器word问题。
-->已经上传的文件在资源管理器里可以正常打开.就是在web程序的下载过程中不能打开,或是保存后不能打开.
我认为word文件本身的权限问题可能性较大.是不是在下载的代码中要转换权限或是打开权限,否则本地存储时权限与服务器权限不同?
我按照网上的说法进行了尝试不行呀.除了在webconfig里没有设置模拟,其他都试了.不行.
各位再帮忙看看.
谢过.
我改了代码,部署后直接成功.
//这是原来的下载文件代码.不管怎么设置环境,在部署后都在下载打开word文件时 无权限/文件损坏等信息.(VS环境下是好的)
if (ifExist)
{
//string filename = System.IO.Path.Combine(strDownloadFilePath, strDownloadFileName);// strDownloadFilePath + strDownloadFileName;//要下载的文件的源地址
//Response.Clear();
//Response.ContentType = "Session/octet-stream";
//Response.AddHeader("Content-Disposition", "attachment;filename=" + HttpUtility.UrlEncode(strDownloadFileName, System.Text.Encoding.UTF8));
//Response.AppendHeader("Content-Length", filename.Length.ToString());// DownloadFile.Length.ToString());
//Response.WriteFile(filename);//Response.TransmitFile(filename);//下载
//Response.Flush();
//Response.End();//这是改了以后的下载文件代码.更改为此代码后,原来不成功的下载打开直接成功.未更改任何环境设置.可见还是我的代码的问题.该代码在生成安装文件后直接在另一台机子上安装,也未设置环境,直接成功.
string filename = System.IO.Path.Combine(strDownloadFilePath, strDownloadFileName);
FileInfo fi = new FileInfo(filename);
if (fi.Exists)
{
Response.Clear();
//Response.AddHeader("Content-Disposition", "attachment;filename=" + fi.Name);
Response.AddHeader("Content-Disposition", "attachment;filename=" + HttpUtility.UrlEncode(strDownloadFileName, System.Text.Encoding.UTF8));
Response.AddHeader("Content-Length", fi.Length.ToString());
Response.ContentType = "application/octet-stream";
Response.Filter.Close();
Response.WriteFile(fi.FullName);
Response.End();
}
}
结贴!!
感谢各位帮忙分析.