struts1上传(暂记)
异常:ClientAbortException: java.net.SocketException: Connection reset by peer: socket write error
解决办法:<a href="#" onclick="download()">在firefox中要去掉href="#"
jsp:
function download() {loginForm.method.value="download";loginForm.submit();}<a onclick="download()">下载PDF文件</a>
public ActionForward download(ActionMapping mapping, ActionForm form,HttpServletRequest request, HttpServletResponse response)throws Exception {BufferedInputStream bis = null; BufferedOutputStream bos = null; OutputStream fos = null; InputStream fis = null; try{ String path = "D:/Coder Software/MyEclipse 6.5/workspace/struts1.3/web/WEB-INF/pdf/b14233.pdf";// File file = new File(path);//// fis = new FileInputStream(file);// bis = new BufferedInputStream(fis);// // fos = response.getOutputStream();// bos = new BufferedOutputStream(fos);// // response.setHeader("Content-disposition",// "attachment;filename=" +// URLEncoder.encode(path, "utf-8"));// int bytesRead = 0;// // byte[] buffer = new byte[8192];// // while ((bytesRead = bis.read(buffer, 0, 8192)) != -1) {// bos.write(buffer, 0, bytesRead);// }// bos.flush();// fis.close();// bis.close();// fos.close();// bos.close(); BufferedInputStream in = new BufferedInputStream(new FileInputStream(path)); byte[] b = new byte[1024]; int len=0; response.reset(); response.setHeader("Content-Disposition", "attachment;" + "filename=" + URLEncoder.encode(path, "utf-8"));// response.setContentType("application/x-msdownload"); ServletOutputStream out=response.getOutputStream(); while((len=in.read(b))!=-1){ out.write(b,0,len); } out.flush(); in.close(); out.close(); }catch(Exception ex) { ex.printStackTrace(); }return null;}