struts.xml和struts.properties都按网上说的分别设置了struts.multipart.maxSize和struts.multipart.maxSize的大小。
但发现无论设置的再大,上传附件时最多也只能上传1个多G的附件,超过2G时页面提示“无法显示网页”,tomcat并不报错。跟踪了下代码发现并没有进入action,应该还是被拦截了。
根据项目实际,很可能有几个G甚至十几G的附件需要上传,请问各位高手,像这种上传大附件的需要怎么配置,或者说要如何实现?谢谢

解决方案 »

  1.   

    你见过哪个上传有g级别的,远程传送哪个有不丢包的,你越大,时间越长,你的丢包率就越高
    话句话说,你上传a文件到b服务器,等你上传完,b服务器接收的文件就未必和你的文件一样了,再说万一失去连接,你就白等了所以,建议拆,分开传,文件越小越好,完毕
      

  2.   

    如果利用struts本身的功能进行文件传输(我不确定)看楼主的描述,它可能进行了限制。但如果自己来传(不利用它本身功能),应该不至于受到大小的限制,按流的形式进行传输,传一点存一点,它怎么按大小限制呢?
      

  3.   

    struts2肯定不行了,一般情况下超过50MB的文件在实际项目中应用的话都需要借助于控件来实现。而且控件需要带断点续传功能。普通上传控件功能在实际项目可能无法使用。因为网络不稳定,网速慢,这些情况可能会导致SESSION超时。
      

  4.   

    网上有一个Web超大文件上传断点续传控件:http://www.cnblogs.com/xproer/archive/2012/10/26/2741264.html
    此控件支持100G文件的断点续传操作,提供了完善的开发文档,支持文件MD5验证,支持文件批量上传。
    粘贴文件,简化选择文件操作:文件MD5值计算进度:文件MD5值计算完毕服务器根据MD5检测是否存在相同文件续传文件从服务器加载文件列表文件上传中文件上传完毕上传文件夹与Discuz!X2整合-后台安装断点续传控件与Discuz!X2整合-后台启用断点续传控件与Discuz!X2整合-后台断点续传控件启用成功与Discuz!X2整合-前台发帖页面与Discuz!X2整合-上传
    页面调用示例代码:<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" >
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
        <title>HTTP断点续传控件与MySQL数据库演示页面(UTF-8)</title>
        <link href="HttpUploader/HttpUploader.css" type="text/css" rel="Stylesheet"/>
        <script type="text/javascript" charset="utf-8" src="HttpUploader/FileLister.js"></script>
        <script type="text/javascript" charset="utf-8" src="HttpUploader/HttpUploader.js"></script>
        <script type="text/javascript" charset="utf-8" src="HttpUploader/combinbox.js"></script>
        <script type="text/javascript" src="HttpUploader/jquery-1.3.2.min.js"></script>
        <script language="javascript" type="text/javascript">
         var cbItemLast = null;
         var cbMgr = new CombinBoxMgr();     $(document).ready(function()
         {
         cbMgr.LoadInControl("FilePanel");
         cbMgr.Init();
         });
        </script>
    </head>
    <body>
    <div id="FilePanel"></div>
    </body>
    </html>资源下载:
    CAB安装包
    EXE安装包
    开发文档
    升级日志 
    ASP.NET(C#)示例代码:
    ASP.NET-ACCESS示例
    ASP.NET-SQL2005示例
    JSP示例代码:
    JSP-ACCESS-GB2312示例
    JSP-ACCESS-UTF8示例
    JSP-SqlServer2005-UTF8示例
    JSP-MySQL-UTF8示例
    PHP示例代码:
    PHP-MySQL-UTF8示例
    Chrome,Firefox,IE断点续传控件示例(以下示例已整合IE32,IE64,Firefox,Chrome平台的插件)
    ASP.NET-ACCESS示例
    ASP.NET-SQL2005示例
    JSP示例代码:
    JSP-ACCESS-GB2312示例
    JSP-ACCESS-UTF8示例
    JSP-SqlServer2005-UTF8示例
    JSP-MySQL-UTF8示例
    PHP示例代码:
    PHP-MySQL-UTF8示例
      

  5.   

    内部局域网,10MB/S的速度才能扛得住1G的上传吧。否则外网别说1G,50MB你都无法上传成功了。
    如果服务器带宽大,用户网速快还好说。普通的应用根本就不行,像这样的大文件上传需求都必须使用断点续传功能的上传控件。
    比如QQ邮箱中的大附件上传功能,115网盘,DBank(华为网盘),百度网盘
      

  6.   


    如果连接时间没有限制,那么别人可以给你写个提交http请求的程序,然后用死循环不断的网你的服务器上传送数据,占用你的服务器资源。如果使用多个肉鸡同时运行这种程序,那你的服务器很快就崩溃了。连接时间过长也有上述的问题。这是服务器的设计者对一般情况的分析,不是针对某种特定的应用。这个连接时间应该可以改,但你得确定是可以信任的用户。