先设置一下允许一次下载的最大字节数.setMaxFileSize

解决方案 »

  1.   

    我也遇到过这种问题。浪费了我不少时间,后来甚至我把weblogic的一个类文件修改了也没能解决这个问题。最后自己写了一个SERVLET作下载。建议你自己写一个下载的SERVLET,实际上原理很简单。你要的话,我发给你。
      

  2.   

    youngster(年青人):
    我用smartupload作下载,发现下载下来的文件大小虽然一样,但文件内容变了,如果可以,把你的servlet下载类发给我参考一下。谢谢!
    [email protected]
      

  3.   

    在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下处理下载均正常。
      

  4.   

    不知大家有没有jspsmartupload,从oracle(sqlserver)数据库中进行文件下载的例子,能给我发一份[email protected]