精华内容
下载资源
问答
  • tomcat上传下载文件

    2016-08-07 16:49:15
    tomcat上传下载文件亲测,ok
  • Apache和Tomcat限制文件访问或下载

    千次阅读 2019-03-01 14:14:39
    Apache,在http.conf中的<Directory >里面加入 Xml代码 <FilesMatch"pattern"> OrderDeny,Allow ...Tomcat,在web.xml里加入 Xml代码 <secur...

    Apache,在http.conf中的<Directory >里面加入

     

    Xml代码 

     收藏代码

    1. <FilesMatch "pattern">  
    2.    Order Deny,Allow  
    3.    Deny from all  
    4. </FilesMatch>  

     

    Tomcat,在web.xml里加入

     

    Xml代码 

     收藏代码

    1. <security-constraint>  
    2. <display-name>HelloApp Configuration Security Constraint</display-name>  
    3. <web-resource-collection>  
    4. <web-resource-name>Protected Area</web-resource-name>  
    5. <!-- Define the context-relative URL(s) to be protected -->  
    6. <url-pattern>/pattern</url-pattern> <!--可在这里设置要被限制的文件夹-->  
    7. </web-resource-collection>  
    8. <auth-constraint>  
    9. <!-- Anyone with one of the listed roles may access this area -->  
    10. </auth-constraint>  
    11. </security-constraint>  
    展开全文
  • the request was rejected because its size (66704562) exceeds the configured maximum (52428800)
  • Tomcat优化

    2018-10-29 17:18:02
    基于tomcat7的优化,主要优化配置、禁用AJP连接器、JVM参数的优化等
  • Tomcat限制文件上传大小(转)
    展开全文
  • tomcat上传超过限制文件大小报异常而不能正常转发的bug

    1、上传示例的源码

    【index.jsp】

    <h1>文件的上传</h1>
    <h2><font color="red">${requestScope.errorMsg}</font></h2>
    <form action="${pageContext.request.contextPath}/upload" method="post" enctype="multipart/form-data">
        用户名:<input type="text" name="username" /><br /><br />
        文件1:<input type="file" name="file1" /><br /><br />
        文件2:<input type="file" name="file2" /><br /><br />
        文件3:<input type="file" name="file3" /><br /><br />
        <input type="submit" value="上传" />
    </form>
    

    【success.jsp】

    <h1>文件上传成功!</h1>
    <a href="${pageContext.request.contextPath}/index.jsp">返回上传页面</a>
    

    【FileUploadServlet】

    import java.io.File;
    import java.io.IOException;
    import java.util.List;
    import java.util.UUID;
    
    import javax.servlet.ServletException;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    
    import org.apache.commons.fileupload.FileItem;
    import org.apache.commons.fileupload.FileUploadBase.FileSizeLimitExceededException;
    import org.apache.commons.fileupload.FileUploadBase.SizeLimitExceededException;
    import org.apache.commons.fileupload.FileUploadException;
    import org.apache.commons.fileupload.disk.DiskFileItemFactory;
    import org.apache.commons.fileupload.servlet.ServletFileUpload;
    
    public class FileUploadServlet extends HttpServlet {
        private static final long serialVersionUID = 1L;
    
        @Override
        protected void doPost(HttpServletRequest request, HttpServletResponse response)
                throws ServletException, IOException {
            doGet(request, response);
        }
    
        @Override
        protected void doGet(HttpServletRequest request, HttpServletResponse response)
                throws ServletException, IOException {
            // 创建工厂实例
            DiskFileItemFactory factory = new DiskFileItemFactory();
            // 创建解析器实例
            ServletFileUpload fileUpload = new ServletFileUpload(factory);
    
            // 设置单个文件大小1Kb【单位字节】
            fileUpload.setFileSizeMax(1024);
            // 设置多个文件大小2Kb【单位字节】
            fileUpload.setSizeMax(2 * 1024);
    
            try {
                // 解析请求获取每一个表单项
                List<FileItem> fileItems = fileUpload.parseRequest(request);
    
                int size = fileItems.size();
                for (int i = 0; i < size; i++) {
                    FileItem fileItem = fileItems.get(i);
    
                    // 获取表单项的name属性值
                    String fieldName = fileItem.getFieldName();
    
                    // 是否是一个文本输入框
                    boolean formField = fileItem.isFormField();
                    if (formField) {
                        // 获取表单value属性值,以UTF-8来解码
                        String value = fileItem.getString("UTF-8");
    
                        // 没有输入内容
                        if ("".equals(value)) {
                            request.setAttribute("errorMsg", "请输入内容!");
                            request.getRequestDispatcher("/index.jsp").forward(request, response);
                            return;
                        }
    
                        System.out.println("表单项name属性:" + fieldName);
                        System.out.println("用户输入的内容:" + value);
                    } else {
                        System.out.println("表单name属性值:" + fieldName);
    
                        // 获取文件名
                        String fileName = fileItem.getName();
                        // 获取文件大小(单位字节)
                        long fileSize = fileItem.getSize();
                        // 获取文件的MIME类型
                        String fileType = fileItem.getContentType();
    
                        // 没有上传文件
                        if (0 == fileSize) {
                            request.setAttribute("errorMsg", "请上传文件!");
                            request.getRequestDispatcher("/index.jsp").forward(request, response);
                            return;
                        }
    
                        System.out.println("文件名:" + fileName);
                        System.out.println("文件大小:" + fileSize + "字节");
                        System.out.println("文件MIME类型:" + fileType);
    
                        String uploadPath = "/upload";
                        // 上传到服务器的路径的绝对路径
                        uploadPath = getServletContext().getRealPath(uploadPath);
                        File uploadFile = new File(uploadPath);
                        if (!uploadFile.exists()) {
                            uploadFile.mkdirs();
                        }
    
                        // 兼容IE5、IE6获取到的文件名是绝对路径
                        fileName = fileName.substring(fileName.lastIndexOf(File.separator) + 1);
    
                        // 生成UUID
                        String uuid = UUID.randomUUID().toString().replace("-", "");
                        // 唯一的文件名
                        uploadPath = uploadPath + File.separator + uuid + "_" + fileName;
    
                        uploadFile = new File(uploadPath);
    
                        // 写到服务器硬盘上
                        fileItem.write(uploadFile);
    
                    }
    
                }
    
                // 成功,跳转到成功页面
                response.sendRedirect(request.getContextPath() + "/success.jsp");
    
            } catch (FileSizeLimitExceededException e) {
                request.setAttribute("errorMsg", "单个文件最大1Kb");
                request.getRequestDispatcher("/index.jsp").forward(request, response);
    
                System.out.println("单个文件错误信息:" + e.getMessage());
            } catch (SizeLimitExceededException e) {
                request.setAttribute("errorMsg", "多个文件最大2Kb");
                request.getRequestDispatcher("/index.jsp").forward(request, response);
    
                System.out.println("多个文件错误信息:" + e.getMessage());
            } catch (FileUploadException e) {
                e.printStackTrace();
            } catch (Exception e) {
                e.printStackTrace();
            }
    
        }
    
    }
    

    【Tips】

    这里限制上传的单个文件最大1Kb,多个文件2Kb
    

    2、错误的触发

    当上传 3.53 MB (3,706,535 字节)大小的文件时,catch中的转发没有正常执行
    并且浏览器报错
    浏览器报错

    3、错误的原因

    用户上传超过指定的单个文件大小,会报异常:
    FileSizeLimitExceededException

    超过多个文件大小,会报异常:
    SizeLimitExceededException

    在catch这些异常时,有时会给用户以响应,通过request域设置错误信息,但是当用户上传的文件超过限制的大小过大时,并不会转发,这是tomcat的bug:

        https://bz.apache.org/bugzilla/show_bug.cgi?id=57438

    4、错误解决办法

    使用低版本的tomcat

    亲测tomcat7.0.39没有问题【Chrome、Filefox、IE10】

    下载地址:
        http://archive.apache.org/dist/tomcat/tomcat-7/v7.0.39/bin/

    源码:
        http://archive.apache.org/dist/tomcat/tomcat-7/v7.0.39/src/

    展开全文
  • 然后百度了半天,也没找到解决问题的方案,然后我就继续测试,发现xml文件超过一定的大小时,才保存成功,于是可以基本确定是xml文件的大小限制了向数据库的存储。接着,那问题就在于怎么向数据库存储了?于是...

    说解决问题之前,先说以下自己定位到问题根源的心路历程:

    最近在项目中发现了一个问题,发现当向数据库(mysql)保存xml文件时,保存不成功,控制台出现如下错误:

    然后百度了半天,也没找到能解决问题的方案,然后我就继续测试,发现xml文件超过一定的大小时,才保存不成功,于是可以基本确定是xml文件的大小限制了向数据库的存储。接着,那问题就在于怎么向数据库存储了?于是回归源码,发现向数据库存储过程中存在一个页面表单采用post方式向java后台传递参数的过程(jquery的ajax请求),于是乎,就猜想是不是请求方式对于文件大小有限制,终于在百度的时候发现了最终解决方案:原文链接,该答案直接吸引我的是,将问题引入到了tomcat服务器自身的配置问题上面去,我觉得很有可能,于是就尝试了一下,最终解决问题

    百度的时候还有网友的回答让我受益良多:比如服务端request.getParameter或request.getParameterMap这两个接收参数的方法。(参考连接

     

    展开全文
  • Tomcat限制post请求文件上传大小

    千次阅读 2018-06-28 16:05:40
    Tomcat限制post请求文件上传大小一、遇到的bug我通过APP客户端上传图片时,却发现服务器根本没有接受到此图片,后来才发现图片是3.9M,超过tomcat对http的post请求的默认接收大小2M的限制。二、问题的根源tomcat默认...
  • web服务器如何限流-nginx,tomcat服务器如何限制流量 用ab压测工具测试限流效果
  • Tomcat上传文件大小限制

    千次阅读 2018-08-20 14:19:24
    不论是使用原生的fileupload组件还是使用struts2,进行文件上传,当总大小超过限制后,都不能正确转到页面 tomcat版本6.0.44,web版本2.5 查询后多数人说在server.xml中添加maxPostSize属性: &lt;Connector...
  • 当服务器是Tomcat时,通过POST上传的文件大小的最大值为2M(2097152)。 如果想修改该限制,修改方法如下: tomcat目录下的conf文件夹下,server.xml文件中以下的位置中添加maxPostSize参数 <Connector ...
  • Nginx和tomcat上传文件大小限制修改,Ngnix和tomcat默认对上传文件大小有限制
  • 当服务器是Tomcat时,通过POST上传的文件大小的最大值为2M(2097152)。 如果想修改该限制,修改方法如下: tomcat目录下的conf文件夹下,server.xml 文件中以下的位置中添加maxPostSize参数 <Connector port...
  • 主要介绍了详解tomcat 解决 POST请求传参数过长受限制的问题,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
  • tomcat不限制上传文件大小

    千次阅读 2018-08-30 18:25:43
    设置不限制上传大小 maxPostSize=”0” &lt;Connector port="20021" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="10023" URIEncoding=&...
  • tomcat限制ip访问

    2018-03-12 14:44:00
    context元素添加 <Context> <Valve className="org.apache.catalina.valves.RemoteAddrValve" allow="127.0.0.1" deny...若加allow默认限制所有ip访问 若加<Value>元素默认不限制ip ...
  • tomcat服务器设置文件下载

    万次阅读 2017-08-22 16:33:49
    设置Tomcat的虚拟目录 {tomcat_home}/conf/server.xml unpackWARs="true" autoDeploy="true"> <Context path="" docBase="examples" reloadable="true" cros
  • tomcat下载文件乱码问题

    千次阅读 2018-11-29 15:16:45
    项目部署到生产环境之后下载文件乱码,代码没有问题,配置了一下tomcat就可以了。 这可能是解决方法之一 tomcat设置catalina.sh 中java_opts: JAVA_OPTS="-server -Dfile.encoding=UTF-8" 指定的...
  • server.xml代码加上URIEncoding="UTF-8" <ConnectorURIEncoding="UTF-8"connectionTimeout="20000"port="9000"protocol="HTTP/1.1"redirectPort="8443"/> <Connectorpor...
  • Tomcat文件下载与上传的简单实现

    万次阅读 2018-07-17 23:13:35
    - 修改Tomcat中的server.xml - 修改web.xml 修改server.xml 在&amp;amp;amp;amp;amp;amp;lt;Engine&amp;amp;amp;amp;amp;amp;gt; &amp;amp;amp;amp;amp;amp;lt;/Enginer&amp;amp;amp;amp;amp...
  • Tomcat配置ip限制访问

    千次阅读 2018-02-12 15:01:59
    允许执行用户访问(即黑名单)在tomcat中,我们可以通过配置在控制不同ip或主机名对服务的访问限制。配置主机参数名:RemoteHostValve配置IP地址参数名:RemoteAddrValve操作如下:打开tomcat下的/conf/server.xml...
  • TOMCAT 问题的根源:tomcat默认设置接收HTTP POST请求的大小最大为2M,如果你的POST请求传递的数据大于2M,就会报错误。... 解决的办法:修改tomcat的配置文件C:/MinyooCMS/tomcat/conf/server.xml(或者安装
  • 解决的办法:修改tomcat的配置文件C:/MinyooCMS/tomcat/conf/server.xml(或者安装在D盘文件路径是D: /MinyooCMS/tomcat/conf/server.xml),找到里面的<Connector>标签,在该标签中添 加"maxPostSize"属性,将该...
  • 当服务器是Tomcat时,通过POST上传的文件大小的最大值为2M(2097152)。 如果想修改该限制,修改方法如下 tomcat目录下的conf文件夹下,server.xml 文件中以下的位置中添加maxPostSize参数: &lt;Connector ...
  • tomcat中的bin文件夹的startup.bat 中倒数第三行的start 改为 run,倒数第二行 添加pause(注意后面不能有空格) 这样就能看到tomcat为什么闪退 这时tomcat 报错是错误: 找不到口令文件: C:\Program Files...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 84,011
精华内容 33,604
关键字:

tomcat限制文件不能下载