上传大文件时,浏览器进度条停不下来了呢?要等进度条走完了,才能返回错误结果,而且客户端cpu狂转。
服务器端我做了上传大小限制,不能超过7MB.
上传的文件越大,cpu占用的越多。
这个问题困扰我好久了,怎么能让它立刻停下来呢?
请前辈帮小弟我看看,要怎么改进下呢?
[code="html"]
<br>
function send() {<br>
var uploadForm = document.getElementById("uploadForm");<br>
uploadForm.submit();<br>
return false;<br>
}</p>
<pre><code> function onFailure(errMsg) {
alert(errMsg);
}
</code></pre>
<p>
[/code]
[code="java"]
//ContentLengthFilter 过滤 AcceptServlet
public class ContentLengthFilter implements Filter {
public void init(FilterConfig filterConfig) throws ServletException {
}
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain) throws IOException, ServletException {
HttpServletRequest req = (HttpServletRequest) request;
HttpServletResponse resp = (HttpServletResponse) response;
PrintWriter out = null;
try {
int length = req.getContentLength();
//限制上传大小 7MB
if (length <= 0 || length > (7 * 1024 * 1024)) {
out = resp.getWriter();
String errMsg = "err!!";
out.println("<script>" + "parent.onFailure('" + errMsg + "');" + "</script>");
} else {
chain.doFilter(req, resp);
}
} finally {
if (out != null) {
out.flush();
out.close();
out = null;
}
}
}
public void destroy() {
}
}
[/code]
[code="java"]
//AcceptServlet 负责上传
public class AcceptServlet extends HttpServlet {
}
[/code]