BufferedInputStream in=new BufferedInputStream(new FileInputStream(file));
byte[] b = FileCopyUtils.copyToByteArray(in);
为什么file大了就会出错,有什么方法解决呢

解决方案 »

  1.   

    byte[] b = FileCopyUtils.copyToByteArray(in);
    很明星是把文件装到byte数组,也就是内存中,大的文件比方说1G的,哪有那么多内存呀?
      

  2.   

    我是要把file保存到数据库中去,该怎么处理
      

  3.   

    一般是把文件路径存到数据库 然后把文件FTP到服务器
      

  4.   

    好像修改tomcat 的内存设置就可以了,不晓得在哪设置
      

  5.   

    文件上传一般有两种方法能实现,如果你的文件不是很大的话,你可以直接保存到数据库,如果你的文件挺大的(一般超过几十M以上的话),建议lZ把文件上传到服务器指定的硬盘上,然后把文件所在硬盘的路径保存入数据库就行了。你的
    BufferedInputStream in=new BufferedInputStream(new FileInputStream(file));
    byte[] b = FileCopyUtils.copyToByteArray(in);
    文件一大就出问题,我估计你是用mysql数据库,然后你定义的字段是:blog或longblog是吧?
    这个如果mysql使用的是默认的配置文件的话,一般只能上传一两M左右的大小吧,你要是想支持更大是文件上传,你得修改一个你的配置文件在你的配置文件中加上这句代码:set-variable = max_allowed_packet=24M这个就是mysql提供对blog字段的扩展吧 
      

  6.   

    我是用的ORACLE数据库,数据库字段为BLOB类型,我测试过,把TOMCAT中的内容改为800都是对的,我就是不知道怎么改,网上也没有具体的操作,那个大哥晓得怎么改呀,谢了