chrome 失败-网络异常,但是其他浏览器正常下载

震惊!!! 新鲜出炉的文件下载功能,在chrome 中惨遭滑铁卢
本文只针对 在chrome中滑铁卢 但在其他浏览器上攻无不克 
并且新鲜出炉的javaWEB文件下载功能

出现问题的地方在这里:

// 错误代码
		 response.setContentType("application/xlsx");
// 正确代码
        response.setContentType("application/xlsx;");
// 一个 ; 号之差 

正确代码是这样的:

//           拿到文件对象后的校验 下载
        if (!file.exists()) {
            ResponseUtils.renderJson(response, JSON.toJSONString(Result.getMsgError("服务器上没有你需要的模板")));
        }
// 			开始设置响应头,准备传输文件        
//            设置响应内容大小
        response.setHeader("Content-Length", String.valueOf(file.length()));
//             设置响应类型, 此处是xlsx
        response.setContentType("application/xlsx;");
//            设置 Content-Disposition  为 attachment 如此浏览器会激活文件下载框
//             filename 则是 下载的文件的默认名称
        response.addHeader("Content-Disposition",
                "attachment; filename=" + UPLOAD_TEMPLATE_FILE_NAME);

        byte[] buffer = new byte[1024];
        BufferedInputStream bis = null;
        try {
            bis = new BufferedInputStream(new FileInputStream(file));
            OutputStream os = response.getOutputStream();
            int i  ;
            while ((i=bis.read(buffer)) != -1) {
                os.write(buffer, 0, i);
            }
            
         } catch (IOException e) {
            log.warn(" upload file is error .the error msg is :[" + e.getMessage() + "]");
            result = Result.getDefaultError();
            e.printStackTrace();
         } finally {
            if (bis != null) {
                try {
                    bis.close();
                } catch (IOException e) {
                }
            }
        }
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章