jspsmartupload的下载问题。。 先设置一下允许一次下载的最大字节数.setMaxFileSize 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 我也遇到过这种问题。浪费了我不少时间,后来甚至我把weblogic的一个类文件修改了也没能解决这个问题。最后自己写了一个SERVLET作下载。建议你自己写一个下载的SERVLET,实际上原理很简单。你要的话,我发给你。 youngster(年青人):我用smartupload作下载,发现下载下来的文件大小虽然一样,但文件内容变了,如果可以,把你的servlet下载类发给我参考一下。谢谢![email protected] 在weblogic下使用smartupload,就算成功下载了,但文件的最后几个字节却丢失了。如果是文本文件,则少了最后几个字节,如果是二进制文件,就会打不开或出现乱码。好事做到底,源码如下:import javax.servlet.*;import javax.servlet.http.*;import java.io.*;import java.util.*;public class Downloader extends HttpServlet { private static final String CONTENT_TYPE = "application/x-msdownload"; public void init() throws ServletException { } //Process the HTTP Get request public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { this.download(request,response); } public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { this.download(request,response); } //Clean up resources public void destroy() { } private void download(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String filename = request.getParameter("fileName"); filename = new String(filename.getBytes("ISO-8859-1"),"GB2312"); File file = new File(filename); response.setContentType(CONTENT_TYPE); response.setContentLength((int)file.length()); String m_contentDisposition = "attachment;"; response.setHeader("Content-Disposition", String.valueOf((new StringBuffer(String.valueOf(m_contentDisposition))).append(" filename=").append(file.getName()))); OutputStream os = response.getOutputStream(); int blockSize = 4096; writeFile(file,os,blockSize); } private boolean writeFile(File file,OutputStream os, int blockSize){ boolean result = true; FileInputStream fis = null; try { int readed = 0; fis = new FileInputStream(file); byte[] buff = new byte[blockSize]; while(true){ readed = fis.read(buff); if(readed < blockSize){ if(readed > -1) os.write(buff,0,readed); break; } os.write(buff); } os.flush(); } catch (Exception ex) { result = false; ex.printStackTrace(); }finally{ try { fis.close(); } catch (Exception ex) { } } return result; }}说明:1)参数“fileName”为文件的绝对路径+文件名2)此程序在tomcat,weblogic下处理下载均正常。 不知大家有没有jspsmartupload,从oracle(sqlserver)数据库中进行文件下载的例子,能给我发一份[email protected] 网业刷新问题 100分求一问题解决方案 MSSQL2K+Struts如何配置数据源? 请问:项目计划分解有哪些阶段?? 求助:把html表格导出excel时发现的奇怪问题 Java读写Excel问题 jsp里能用递归吗?????帮忙看看这段,要不就得中写了,真着急了!! 请问,比如发布文章时候,如何保存格式 请问个安全问题 关于抛出异常的疑惑! jspsmart的下载问题 我的Statement对象只能执行Select语句,为什么不能执行Insert,update,del语句
我用smartupload作下载,发现下载下来的文件大小虽然一样,但文件内容变了,如果可以,把你的servlet下载类发给我参考一下。谢谢!
[email protected]
import javax.servlet.http.*;
import java.io.*;
import java.util.*;public class Downloader extends HttpServlet {
private static final String CONTENT_TYPE = "application/x-msdownload";
public void init() throws ServletException {
}
//Process the HTTP Get request
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
this.download(request,response);
} public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
this.download(request,response);
} //Clean up resources
public void destroy() {
} private void download(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String filename = request.getParameter("fileName");
filename = new String(filename.getBytes("ISO-8859-1"),"GB2312");
File file = new File(filename);
response.setContentType(CONTENT_TYPE);
response.setContentLength((int)file.length());
String m_contentDisposition = "attachment;";
response.setHeader("Content-Disposition", String.valueOf((new StringBuffer(String.valueOf(m_contentDisposition))).append(" filename=").append(file.getName())));
OutputStream os = response.getOutputStream();
int blockSize = 4096;
writeFile(file,os,blockSize);
}
private boolean writeFile(File file,OutputStream os, int blockSize){
boolean result = true;
FileInputStream fis = null;
try {
int readed = 0;
fis = new FileInputStream(file);
byte[] buff = new byte[blockSize];
while(true){
readed = fis.read(buff);
if(readed < blockSize){
if(readed > -1) os.write(buff,0,readed);
break;
}
os.write(buff);
}
os.flush();
}
catch (Exception ex) {
result = false;
ex.printStackTrace();
}finally{
try {
fis.close();
}
catch (Exception ex) {
}
}
return result;
}}说明:
1)参数“fileName”为文件的绝对路径+文件名
2)此程序在tomcat,weblogic下处理下载均正常。