java文件下载如何让用户选择“保存”或“打开”,而不是直接下载java文件下载如何让用户选择“保存”或“打开”,而不是直接下载
java文件下载,怎么让用户选择“保存”或“打开”,而不是直接下载,
如题,用IE测试时,有时直接就用迅雷下载了,不会弹出那个“保存”或“打开”的对话框
下面是servlet代码
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws
ServletException,
IOException {
request.setCharacte...
java文件下载如何让用户选择“保存”或“打开”,而不是直接下载
java文件下载,怎么让用户选择“保存”或“打开”,而不是直接下载,
如
,用IE测试时,有时直接就用迅雷下载了,不会弹出那个“保存”或“打开”的对话框
下面是servlet代码
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws
ServletException,
IOException {
request.setCharacterEncoding( UTF-8 );
response.setCharacterEncoding( UTF-8 );
response.setContentType( text/html;charset=UTF-8 );
String fileName = request.getParameter( fileName );
fileName = new String(fileName.getBytes( ISO-8859-1 ), UTF-8 ).trim();//文件名
String path = request.getRealPath( / )+ webs/ ;
String target = path+ file +File.separator+ workflow +File.separator+fileName;//
文件存储的位置
String fileType = fileName.substring(fileName.lastIndexOf( . )+1, fileName.length());
response.reset(); //清空response
response.setHeader( Content-Disposition , attachment;filename= +fileName);
OutputStream out = response.getOutputStream();
FileInputStream in = new FileInputStream(target);
try {
fileName = URLEncoder.encode(fileName, utf-8 );
fileType.toLowerCase();
if( ceb .equals(fileType)){
response.setContentType( application/x-ceb );
}else if( doc .equals(fileType)){
response.setContentType( application/msword );
}else if( xls .equals(fileType)){
response.setContentType( application/vnd.ms-excel );
}else if( gif .equals(fileType)){
response.setContentType( image/gif );
}else if( bmp .equals(fileType)){
response.setContentType( image/bmp );
}else if( jpeg .equals(fileType)){
response.setContentType( image/jpeg );
}else if( txt .equals(fileType)){
response.setContentType( text/plain );
}else if( pdf .equals(fileType)){
response.setContentType( application/pdf );
}else if( jpeg .equals(fileType)){
response.setContentType( image/jpeg );
}else{
response.setContentType( application/octet-stream );
}
int n = 0;
byte b[] = new byte[1024];
while ((n = in.read(b)) != -1)
{
out.write(b, 0, n);
}
out.flush();
}catch(Exception e) {
e.printStackTrace();
}finally{
if(in != null) {
in.close();
}
if(out != null) {
out.close();
}
}
}
------解决
--------------------------------------------------------
我也遇到通过迅雷下载....后来发现是和迅雷设置还是浏览器设置有关。应该是迅雷.你设置
一下迅雷应该就不通过迅雷下载了.你可以试试。具体设置迅雷那个属性我也忘记了 囧
------解决方案--------------------------------------------------------
迅雷设置里面有个设为浏览器默认下载工具,取消就ok了
------解决方案--------------------------------------------------------
貌似是迅雷监视设置里面监视浏览器勾掉就可以。
------解决方案--------------------------------------------------------
工具下载跟代码没关系~
本文档为【java文件下载如何让用户选择“保存”或“打开”,而不是直接下载】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑,
图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。