我的文件存放在FTP服务器上,要通过ie打开文件,现在的做法是通过访问一个servlet实现:
servlet部分代码如下:                        String appflag = "";
String attachment = "";
if (edocFile.getName().indexOf(".doc") > 0) {
appflag = "application/msword";
attachment = "inline";
} else if (edocFile.getName().indexOf(".xls") > 0) {
appflag = "application/vnd.ms-excel";
attachment = "inline";
} else if (requestFlag.indexOf(".pdf") > 0) {
appflag = "application/pdf";
attachment = "inline";
} else {
appflag = "application/octet-stream";
attachment = "attachment";
}
response.setContentType(appflag);
response.setHeader("Content-Disposition", attachment + ";filename="
+ edocFile.getName());                        //ins为从ftp服务器读取文件的输入流
                        inputs = new DataInputStream(new BufferedInputStream(ins));
output = response.getOutputStream();// 得到输出流
                           
                            bos = new BufferedOutputStream(output);// 输出缓冲流 data = new byte[5242880];// 缓冲字节数 5M
int size = 0;
size = inputs.read(data);
while (size != -1) {
bos.write(data, 0, size);
size = inputs.read(data);
}
//以下省略ie已设置为允许文件下载自动提示,但是,现在只能正确打开图片、pdf文件和word文档,但对于excel文件和其它文件,如chm,弹出对话框询问打开或下载时,打击打开或下载后,都提示文件无法下载。提示为:Internet 无法下载   (此处为servlet url) (来自localhsot)。无法打开该站点,该站点不可用或找不到,请稍后再试。  我没法确定是哪里出了问题。
非常感谢各位的帮助(或者能提供变通的解决方法)。PS.我可以通过在ie中直接打开的方式打开163邮箱里的附件

解决方案 »

  1.   

    哦,你要在web.xml中进行设置的. <mime-mapping>
        <extension>zip</extension> <mime-type>application/zip</mime-type>
      </mime-mapping>
      <mime-mapping>
        <extension>xls</extension> <mime-type>application/x-msexcel</mime-type>
      </mime-mapping>
      <mime-mapping>
        <extension>doc</extension> <mime-type>application/msword</mime-type>
      </mime-mapping>
      <mime-mapping>
        <extension>ppt</extension> <mime-type>application/vnd.ms-powerpoint</mime-type>
      </mime-mapping>
      <mime-mapping> 
        <extension>rar</extension> <mime-type>application/octet-stream</mime-type> 
      </mime-mapping>
      <mime-mapping>
        <extension>dat</extension> <mime-type>application/octet-stream</mime-type> 
      </mime-mapping>
      <mime-mapping>
        <extension>mpg</extension> <mime-type>application/octet-stream</mime-type> 
      </mime-mapping>
      <mime-mapping>
        <extension>mp3</extension> <mime-type>application/octet-stream</mime-type> 
      </mime-mapping>  <!-- -->
      <mime-mapping>
        <extension>ZIP</extension> <mime-type>application/zip</mime-type>
      </mime-mapping>
      <mime-mapping>
        <extension>XLS</extension> <mime-type>application/vnd.ms-excel</mime-type>
      </mime-mapping>
      <mime-mapping>
        <extension>DOC</extension> <mime-type>application/msword</mime-type>
      </mime-mapping>
      <mime-mapping>
        <extension>PPT</extension> <mime-type>application/vnd.ms-powerpoint</mime-type>
      </mime-mapping>
      <mime-mapping> 
        <extension>RAR</extension> <mime-type>application/octet-stream</mime-type> 
      </mime-mapping>
      <mime-mapping>
        <extension>DAT</extension> <mime-type>application/octet-stream</mime-type> 
      </mime-mapping>
      <mime-mapping>
        <extension>MPG</extension> <mime-type>application/octet-stream</mime-type> 
      </mime-mapping>
      <mime-mapping>
        <extension>MP3</extension> <mime-type>application/octet-stream</mime-type> 
      </mime-mapping>
      

  2.   

    非常感谢你的回答,但是之前已经在web.xml中已经设置了mime-mapping如下,并没有解决问题。<mime-mapping>
    <extension>doc</extension>
    <mime-type>application/msword</mime-type>
    </mime-mapping>
    <mime-mapping>
    <extension>xls</extension>
    <mime-type>application/msexcel</mime-type>
    </mime-mapping>
    <mime-mapping>
    <extension>pdf</extension>
    <mime-type>application/pdf</mime-type>
    </mime-mapping>
    <mime-mapping>
    <extension>zip</extension>
    <mime-type>application/zip</mime-type>
    </mime-mapping>
    <mime-mapping>
    <extension>rar</extension>
    <mime-type>application/rar</mime-type>
    </mime-mapping>
    <mime-mapping>
    <extension>txt</extension>
    <mime-type>application/txt</mime-type>
    </mime-mapping>
    <mime-mapping>
    <extension>chm</extension>
    <mime-type>application/mshelp</mime-type>
    </mime-mapping>