当前位置:  技术问答>java相关

用JAVA上传文件,文件大小问题,如何突破1MB!

    来源: 互联网  发布时间:2015-08-01

    本文导语:  bean是从网上下载现成的,如下: package kingstar_www.chcn.bbs; import java.io.*; import javax.servlet.*; import javax.servlet.http.HttpServletRequest; public class UpLoadFile {     public UpLoadFile()     {         uploadDirectory = ".";       ...

bean是从网上下载现成的,如下:
package kingstar_www.chcn.bbs;

import java.io.*;
import javax.servlet.*;
import javax.servlet.http.HttpServletRequest;

public class UpLoadFile
{
    public UpLoadFile()
    {
        uploadDirectory = ".";
        ContentType = "";
        CharacterEncoding = "";
    }
    private String getFileName(String s)
    {
        int i = s.lastIndexOf("\");
        if(i = s.length() - 1)
        {
            i = s.lastIndexOf("/");
            if(i = s.length() - 1)
                return s;
        }
        return s.substring(i + 1);
    }
    
    public void setUploadDirectory(String s)
    {
        uploadDirectory = s;
    }

    public void setContentType(String s)
    {
        ContentType = s;
        int i;
        if((i = ContentType.indexOf("boundary=")) != -1)
        {
            ContentType = ContentType.substring(i + 9);
            ContentType = "--" + ContentType;
        }
    }

    public void setCharacterEncoding(String s)
    {
        CharacterEncoding = s;
    }

    public void uploadFile(HttpServletRequest httpservletrequest)
        throws ServletException, IOException
    {
        setCharacterEncoding(httpservletrequest.getCharacterEncoding());
        setContentType(httpservletrequest.getContentType());
        uploadFile(httpservletrequest.getInputStream());
    }

    public void uploadFile(ServletInputStream servletinputstream)
        throws ServletException, IOException
    {
        String s = null;
        String s1 = null;
        byte abyte0[] = new byte[4096];
        byte abyte1[] = new byte[4096];
        int ai[] = new int[1];
        int ai1[] = new int[1];
        String s2;
        while((s2 = readLine(abyte0, ai, servletinputstream, CharacterEncoding)) != null) 
        {
            int i = s2.indexOf("filename=");
            if(i >= 0)
            {
                s2 = s2.substring(i + 10);
                if((i = s2.indexOf(""")) > 0)
                    s2 = s2.substring(0, i);
                break;
            }
        }
        s1 = s2;
        if(s1 != null && !s1.equals("""))
        {
            s1 = getFileName(s1);
            String s3 = readLine(abyte0, ai, servletinputstream, CharacterEncoding);
            if(s3.indexOf("Content-Type") >= 0)
                readLine(abyte0, ai, servletinputstream, CharacterEncoding);
            File file = new File(uploadDirectory, s1);
            FileOutputStream fileoutputstream = new FileOutputStream(file);
            while((s3 = readLine(abyte0, ai, servletinputstream, CharacterEncoding)) != null) 
            {
                if(s3.indexOf(ContentType) == 0 && abyte0[0] == 45)
                    break;
                if(s != null)
                {
                    fileoutputstream.write(abyte1, 0, ai1[0]);
                    fileoutputstream.flush();
                }
                s = readLine(abyte1, ai1, servletinputstream, CharacterEncoding);
                if(s == null || s.indexOf(ContentType) == 0 && abyte1[0] == 45)
                    break;
                fileoutputstream.write(abyte0, 0, ai[0]);
                fileoutputstream.flush();
            }
            byte byte0;
            if(newline.length() == 1)
                byte0 = 2;
            else
                byte0 = 1;
            if(s != null && abyte1[0] != 45 && ai1[0] > newline.length() * byte0)
                fileoutputstream.write(abyte1, 0, ai1[0] - newline.length() * byte0);
            if(s3 != null && abyte0[0] != 45 && ai[0] > newline.length() * byte0)
                fileoutputstream.write(abyte0, 0, ai[0] - newline.length() * byte0);
            fileoutputstream.close();
        }
    }

    private String readLine(byte abyte0[], int ai[], ServletInputStream servletinputstream, String s)
    {
        try
        {
            ai[0] = servletinputstream.readLine(abyte0, 0, abyte0.length);
            if(ai[0] == -1)
                return null;
        }
        catch(IOException ioexception)
        {
            return null;
        }
        try
        {
            if(s == null)
                return new String(abyte0, 0, ai[0]);
            else
                return new String(abyte0, 0, ai[0], s);
        }
        catch(Exception exception)
        {
            return null;
        }
    }
    private static String newline = "n";
    private String uploadDirectory;
    private String ContentType;
    private String CharacterEncoding;

}

谢谢各位了!

|
程序应该没有限制的,只是可能是服务器的缘故
我以前用PHP的时候有个2M的限制,要突破2M的限制,要更改php.ini中的设置。
在JSP中我还不是很清楚有没有这个限制。

|
如果是用JSP绝对没有这个限制,上传100M都没事

    
 
 

您可能感兴趣的文章:

  • Java读写包括中文的txt文件时不同编码格式问题解决
  • JAVA编译的CLASS文件可以反编译为JAVA文件吗?
  • 保存java.sh文件时,多出一个java.sh~文件
  • 用什么工具可以把JAVA的.CLASS文件反编译成.JAVA文件??
  • 请问把.class文件反编译为.java文件的工具有什么???能恢复到原来的.java文件吗???
  • 一个.java文件中怎样来调用另一个.java文件中的变量及其它东西!
  • 用java读中文linux中的文件是正确的,用java读英文linux版本中的文件是乱码,如何使英文linux读出的文件数据也是中文的?
  • java文件复制代码片断(java实现文件拷贝)
  • java读取csv文件示例分享(java解析csv文件)
  • 我刚学java,想请教一下,我在文本中创建了一个接口,一个类,还有一个扩展类,保存为.java文件时,如何给文件名?
  • 请教:有没有把java编译好的.java和.class文件编译成各个平台下的可执行文件??.exe?着急着急
  • java文件操作之java写文件简单示例
  • java复制文件和java移动文件的示例分享
  • java读取文件内容的三种方法代码片断分享(java文件操作)
  • 编译前的java文件没有,只有class文件
  • 我用java编了一个程序,是多个java文件,属于一个包,需要联编,但我不会
  • 低级问题:.java文件交付用户怎么运行,难道也是DOS下:java xx.java?有没有.exe?
  • 我在jbuilder中新建一个servlet,源程序为java文件,是怎么从java到servler转换的?
  • 求救!!如何在java程序中调用外部非java的exe文件?
  • 谁有办法用java执行于java.exe不在一个目录的class文件?
  • 怎样把CLASS文件转成JAVA文件
  • c/c++ iis7站长之家
  • 在我的java程序中,我从数据库中得到一批数据,不能确定是多少个,我要把它保存到我的java数组中,可是怎样才能向C++中的数组一样可以自由分配空间,在java中我必需预先指定大小,不会一定要用java中的那个可改变数组大小的类吧?
  • 有谁做过把一张图片大小成比例缩小(相应图形的存储大小也要缩小)的Java程序吗?
  • java中如何获得系统某一目录和其下的文件大小??
  • Java的类是否区分大小写?
  • 图形化Java类大小统计工具 JSizer
  • 如何改变java applet窗体大小?
  • java 如何获取对象实例的大小
  • 怎样用java 程序查看 像硬盘大小 以及各分区的剩余空间之类的信息?
  • Java能够设置Graphics2D的DrawString的字体的粗细吗?不是指字体大小!
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 我现在非常想学java,想在短时间 内有所突破。繁各位高手指点以下高分请教
  • java命名空间java.sql类types的类成员方法: java_object定义及介绍
  • 我想学JAVA ,是买THINK IN JAVA 还是JAVA2核心技术:卷1 好???
  • java命名空间java.awt.datatransfer类dataflavor的类成员方法: imageflavor定义及介绍
  • 请问Java高手,Java的优势在那里??,Java主要适合于开发哪类应用程序
  • java命名空间java.lang.management类managementfactory的类成员方法: getcompilationmxbean定义及介绍
  • 如何将java.util.Date转化为java.sql.Date?数据库中Date类型对应于java的哪个Date呢
  • java命名空间java.lang.management接口runtimemxbean的类成员方法: getlibrarypath定义及介绍
  • 谁有电子版的《Java编程思想第二版(Thinking in java second)》和《Java2编程详解(special edition java2)》?得到给分
  • java命名空间java.lang.management接口runtimemxbean的类成员方法: getstarttime定义及介绍
  • 本人想学java,请问java程序员的待遇如何,和java主要有几个比较强的方向
  • java命名空间java.awt.datatransfer类dataflavor的类成员方法: stringflavor定义及介绍
  • 我对JAVA一窍不通,可惜别人却给我一个Java的project,要我做一个安装程序,请问哪里有JAVA INSTALLER下载,而且我要不要安装java的sdk才能完成此项任务?
  • java命名空间java.security类keystore的类成员方法: getdefaulttype定义及介绍
  • 新年第一天,让我们讨论一下未来一年JAVA的发展趋势! 个人认为,JAVA将主要朝ERP和JAVA手机方面发展!
  • java命名空间java.lang.management接口runtimemxbean的类成员方法: getclasspath定义及介绍
  • 我想学Java,但不知道Java的实用的开发工具有那些,Java主要用在哪些方面,EJB到底是什么东西??
  • java命名空间java.awt.datatransfer类dataflavor的类成员方法: javaserializedobjectmimetype定义及介绍
  • redhat7.3下,java程序打印中文直接用java命令执行正常,用crontab执行java命令为乱码
  • java命名空间java.awt.datatransfer类dataflavor的类成员方法: javafilelistflavor定义及介绍
  • 各位学java的朋友,学java的未来是什么,你们学java都用来开发什么项目啊!来者给分!!
  • java命名空间java.lang.management接口runtimemxbean的类成员方法: getvmname定义及介绍
  • 请问java程序中的import为什么有的用java.….*,而有的又用java.….…,有什么区别吗?


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3