//下载
response.setContentType("application/x-msdownload");
String filename = "测试.zip";
String iso_filename = SysParameter.parseGBK(filename);
response.setHeader("Content-Disposition",
"attachment;filename=" + iso_filename);
ServletOutputStream op = response.getOutputStream();
op.write(ab);
op.flush();
op.close();
SysParameter.parseGBK 方法:
// 将GBK字符转化为ISO码
public static String parseGBK(String sIn) {
if (sIn == null || sIn.equals(""))
return sIn;
try {
return new String(sIn.getBytes("GBK"), "ISO-8859-1");
} catch (UnsupportedEncodingException usex) {
return sIn;
}
}
Ⅱ java下载文件的中文名 为什么要用 new String(fileName.getBytes("gb2312"),"iso8859-1");原因是什么
ISO8859-1是页面上数据传输的格式,
new String(fileName.getBytes("gb2312"),"iso8859-1");
gb2312是你java项目格式(根据实际项目变更),目的是为了将中文文件名正确显示在页面上。
Ⅲ java文件下载改名
要重新设置contentType,如application/octet-stream,再加版一个权filename
filename="XXXXX.txt";
response.setHeader("Content-Disposition", "attachment; filename="+filename);
Ⅳ java 下载文件设置文件名
怎么的下载方式、方法。
你在后台设置一个,
<%
response.setContentType(fileminitype);
response.setHeader("Location",filename);
response.setHeader("Cache-Control", "max-age=" + cacheTime);
response.setHeader("Content-Disposition", "attachment; filename=" + filename); //filename应该是编码后的(utf-8)
response.setContentLength(filelength);
OutputStream outputStream = response.getOutputStream();
InputStream inputStream = new FileInputStream(filepath);
byte[] buffer = new byte[1024];
int i = -1;
while ((i = inputStream.read(buffer)) != -1) {
outputStream.write(buffer, 0, i);
}
outputStream.flush();
outputStream.close();
inputStream.close();
outputStream = null;
%>
Ⅳ java完成批量下载时,压缩文件怎么命名
看你的代码应该下载zip文件,对应的contentType 是application/x-zip-compressed
getResponse().setContentType("application/octet-stream");修改为getResponse().setContentType("application/x-zip-compressed");
Ⅵ java 获得http下载文件的真实名称
importjava.net.*;
importjava.io.*;
publicclassURLConnectionDemo{
publicstaticvoidmain(String[]args)throwsException{
=newURL("http://www.scp.e.cn/pantoschoolzz/BG/Bord/Message/DownloadMessageAttachment.aspx?ID=215");
URLConnectionuc=url.openConnection();
StringfileName=uc.getHeaderField(6);
fileName=URLDecoder.decode(fileName.substring(fileName.indexOf("filename=")+9),"UTF-8");
System.out.println("文件名为:"+fileName);
System.out.println("文件大小:"+(uc.getContentLength()/1024)+"KB");
Stringpath="D:"+File.separator+fileName;
FileOutputStreamos=newFileOutputStream(path);
InputStreamis=uc.getInputStream();
byte[]b=newbyte[1024];
intlen=0;
while((len=is.read(b))!=-1){
os.write(b,0,len);
}
os.close();
is.close();
System.out.println("下载成功,文件保存在:"+path);
}
}
//输出内容:
文件名为:090602、09-10(1)校历.xls
文件大小:42KB
下载成功,文件保存在:D: 90602、09-10(1)校历.xls
Ⅶ 我用java做了一个通过url地址下载指定文件的功能,文件名可能包含中文,IE正常,火狐失败.
您好!很高兴为您答疑!
火狐下您可以安装Firebug检查页面代码,它集HTML查看和编辑、Javascript控制台、网络状况监视器于一体,是开发JavaScript、CSS、HTML和Ajax的得力助手。
您可以在火狐社区了解更多内容。希望我的回答对您有所帮助,如有疑问,欢迎继续在本平台咨询。
Ⅷ java项目中,下载时怎样根据自定义的文件名去下载对象的文件(自定义的文件名和文件本身的名字不一样)
数据库里存放文件路径的表中再添加一个字段表示资源名称不就行了。
下载时用户提交带有资源名称参数的请求,收到请求后根据请求的资源名称参数去数据库查询文件的实际位置和名称,然后用文件的实际路径和名称 读取文件 得到inputstream流,把文件的inputstream写入给用户响应的response的outputstream就行了。