@WebServlet(urlPatterns = { "/upfile" })
public class MyServlet extends HttpServlet {
@Override
protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
DiskFileItemFactory factory = new DiskFileItemFactory();
ServletFileUpload upload = new ServletFileUpload(factory);
upload.setSizeMax(1024 * 1024 * 5); // 设置单次上传大小最大值5M
try {
//省略获取上传文件代码。。。
//【成功时可以跳转】
resp.sendRedirect(req.getContextPath()+"/index.jsp?msg=ok");
} catch (FileUploadException e) {
//【失败时无法跳转,且页面显示 连接被重置】
resp.sendRedirect(req.getContextPath()+"/index.jsp?msg=error");
}
}
}
在server.xml 设置上限
你这样麻烦了很多,不如在前端网页中用js做设置,这样可以减轻服务器压力,也比较符合用户习惯,你这样做只能抓取异常来控制代码,可是如果异常太大,是不容易控制的,望采纳,我们公司就是前端控制实现的。
建议使用Ajax上传组件上传
如果后端认为文件过大,则返回错误码或者报错,前台JS去判断错误,是否应该跳转至某页面进行提示
这样可以:
1.前后端分离开发
2.提高服务端代码的可读性与高效性
3.节省服务端资源
应该是上传文件过大后服务器报错把本次请求关闭了,这时你再跳转页面就会报错,建议在前端判断。
应该是上传文件过大后服务器报错把本次请求关闭了,这时你再跳转页面就会报错,建议在前端判断。
你访问文件提交所在页面使用的是localhost吧,你换成ip试一下
在前端用js来做限制就好了,推荐使用layui的上传组件
一般都是在js端去做控制,用的现在流行的框架也会有相应的配置
在框架中配置,比如springmvc中配置bean 的class为SimpleMappingExceptionResolver方式 ,不会配置的话百度这个词看下