开发者社区> 问答> 正文

关于http请求:pad和浏览器之间有什么区别吗?

 public Object downFile(String filepath, HttpServletRequest request, HttpServletResponse response) {
        response.addHeader("Access-Control-Allow-Origin", "*");
        JsonResult jsonResult = new JsonResult("");
        OutputStream stream = null;
        FileInputStream inputStream = null;
        filepath = request.getParameter("filepath");
        System.out.println("filepPath "+filepath);
        try {
            FileInfoSearchBeanVO fileInfo = new FileInfoSearchBeanVO();
            fileInfo.setFile_url(filepath);
            filepath = fileinfoService.getFilePath(fileInfo);
            File file = new File(filepath);
            if(file.exists()){
                inputStream = new FileInputStream(file);
                byte[] data = new byte[(int) file.length()];
                inputStream.read(data);
                inputStream.close();
                if(filepath.endsWith("jpg") || filepath.endsWith("JPG")){
                    response.setContentType("image/jpg");
                }
                if(filepath.endsWith("mp4") || filepath.endsWith("MP4")){
                     response.setContentType("video/mpeg4");
                }
                stream = response.getOutputStream();
                stream.write(data);
                stream.flush();
                stream.close();
            }else{
                jsonResult.setSuccess(false);
                jsonResult.setReturnObj("请求的文件不存在");
            }
        } catch (FileNotFoundException e) {
            e.printStackTrace();
            log.error(e.getMessage());
            jsonResult.setSuccess(false);
            jsonResult.setReturnObj("下载失败");
        } catch (Exception e) {
            e.printStackTrace();
            log.error(e.getMessage());
            jsonResult.setSuccess(false);
            jsonResult.setReturnObj("下载失败");
        } finally {
            try {
                if (null != stream) {
                    stream.close();
                }
                if (null != inputStream) {
                    inputStream.close();
                }
            } catch (Exception e) {
                e.printStackTrace();
                log.error(e.getMessage());
            }
        }
        return jsonResult.getResultMap();
    }

HTTP请求:在pc上面访问没有问题,在pad上面范围图片没有问题,但是视频,报

 org.apache.catalina.connector.ClientAbortException: java.net.SocketException: Connection reset by peer: socket write error
 at org.apache.catalina.connector.OutputBuffer.realWriteBytes(OutputBuffer.java:407)
 at org.apache.tomcat.util.buf.ByteChunk.append(ByteChunk.java:371)
 at org.apache.catalina.connector.OutputBuffer.writeBytes(OutputBuffer.java:432)
 at org.apache.catalina.connector.OutputBuffer.write(OutputBuffer.java:420)
 at org.apache.catalina.connector.CoyoteOutputStream.write(CoyoteOutputStream.java:91)
 at org.apache.catalina.connector.CoyoteOutputStream.write(CoyoteOutputStream.java:84)
 at com.ifec.blueair.file.controller.FileController.downFile(FileController.java:125)
 at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
 at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
 at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
 at java.lang.reflect.Method.invoke(Method.java:606)
 at org.springframework.web.bind.annotation.support.HandlerMethodInvoker.invokeHandlerMethod(HandlerMethodInvoker.java:177)
 at org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter.invokeHandlerMethod(AnnotationMethodHandlerAdapter.java:446)
 at org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter.handle(AnnotationMethodHandlerAdapter.java:434)
 at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:943)
 at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:877)
 at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:966)
 at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:857)
 at javax.servlet.http.HttpServlet.service(HttpServlet.java:624)
 at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:842)
 at javax.servlet.http.HttpServlet.service(HttpServlet.java:731)
 at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303)
 at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
 at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
 at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
 at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
 at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:88)
 at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
 at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
 at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
 at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:220)
 at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122)
 at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:505)
 at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:170)
 at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
 at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:957)
 at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116)
 at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:423)
 at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1079)
 at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:620)
 at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:316)
 at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
 at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
 at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
 at java.lang.Thread.run(Thread.java:745)
 Caused by: java.net.SocketException: Connection reset by peer: socket write error
 at java.net.SocketOutputStream.socketWrite0(Native Method)
 at java.net.SocketOutputStream.socketWrite(SocketOutputStream.java:113)
 at java.net.SocketOutputStream.write(SocketOutputStream.java:159)
 at org.apache.coyote.http11.InternalOutputBuffer.realWriteBytes(InternalOutputBuffer.java:215)
 at org.apache.tomcat.util.buf.ByteChunk.flushBuffer(ByteChunk.java:480)
 at org.apache.tomcat.util.buf.ByteChunk.append(ByteChunk.java:366)
 at org.apache.coyote.http11.InternalOutputBuffer$OutputStreamOutputBuffer.doWrite(InternalOutputBuffer.java:240)
 at org.apache.coyote.http11.filters.ChunkedOutputFilter.doWrite(ChunkedOutputFilter.java:119)
 at org.apache.coyote.http11.AbstractOutputBuffer.doWrite(AbstractOutputBuffer.java:192)
 at org.apache.coyote.Response.doWrite(Response.java:499)
 at org.apache.catalina.connector.OutputBuffer.realWriteBytes(OutputBuffer.java:402)
 ... 44 more

展开
收起
爵霸 2016-03-20 09:51:33 2957 0
1 条回答
写回答
取消 提交回答
  • 电脑上的浏览器支持原web网页文档浏览,而且支持安装扩展插件,功能强大,显示的网页都是原网页。pad浏览器不支持原网页浏览

    2020-03-31 14:08:25
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
基于浏览器的实时构建探索之路 立即下载
CDN助力企业网站进入HTTPS时代 立即下载
基于浏览器的实时构建探索之路--玄寂 立即下载