IE下上传
前端显示
<form action="UploadServlet" method="post"> <label for="info">信息:</label> <input type="text" name="info"><br> <label for="file">文件:</label> <input type="file" name="file"><br> <input type="submit" value="上传"> </form>
后台处理 @WebServlet("/UploadServlet") public class UploadServlet extends HttpServlet { private static final long serialVersionUID = 1L; @Override protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { request.setCharacterEncoding("UTF-8"); String filePath = request.getParameter("file"); System.out.println("filePath========="+filePath); File uploadDirPath = new File(getServletContext().getRealPath("/uploadFile")); System.out.println("uploadDirPath====="+uploadDirPath); if(!uploadDirPath.exists()){ uploadDirPath.mkdirs(); } String fileName = null; if(filePath.indexOf(File.separator)<0){//firefox浏览器取得上传的文件名 fileName = filePath; } else{//IE浏览器取得上传的文件名 fileName = filePath.substring(filePath.lastIndexOf(File.separator)+1); } p(fileName); FileInputStream fio = null; FileOutputStream fos = null; try { fio = new FileInputStream(filePath); fos = new FileOutputStream(uploadDirPath+File.separator+fileName); int c; while((c=fio.read())!=-1){ fos.write((char)c); } } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); }finally{ fio.close(); fos.close(); } } public static void p(Object o){ System.out.println(o); } }
二。下载
前台界面 <a href="DownLoadServlet?fileName=东软实训总结.doc">东软实训总结.doc</a><BR> <a href="DownLoadServlet?fileName=Android_de.rar">Androd.rar</a>
后台处理 @WebServlet("/DownLoadServlet") public class DownLoadServlet extends HttpServlet { private static final long serialVersionUID = 1L; @Override protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { p(getServletContext().getRealPath("")); //request.setCharacterEncoding("UTF-8"); //要下载的文件名 String fileName = new String(request.getParameter("fileName").getBytes("ISO-8859-1"),"UTF-8"); //要下载的文件的扩展名 String fileNameExt = fileName.substring(fileName.indexOf(".")); System.out.println(fileName); //下载文件所在的服务器端的目录 String downLoadDir = getServletContext().getRealPath(File.separator+"uploadFile"); //下载文件所在的服务器端的绝对路径 String downloadPath = downLoadDir+File.separator+fileName; p(downloadPath); File files = new File(downLoadDir); boolean flag = false; /* for(File file:files.listFiles()){//查找资源看是否存在 if(fileName.equals(file.getName())){ flag = true; break; } }*/ if(new File(downLoadDir,fileName).exists()){ flag = true; } if(flag){ p("资源存在"); // response.addHeader("content-type", "application/x-download"); //response.setContentType("application/x-msdownload"); response.addHeader("Content-Disposition", "attachment;filename="+Calendar.getInstance().getTimeInMillis()+fileNameExt); //设置文件的大小 response.addHeader("Content-length", Long.toString(new File(downloadPath).length())); FileInputStream fio = new FileInputStream(new File(downloadPath)); OutputStream fos = response.getOutputStream(); byte[] b = new byte[1024]; int n; while((n=fio.read(b))!=-1){ fos.write(b); } fos.flush(); fio.close(); fos.close(); } else{ response.getWriter().println("资源不存在"); } } public static void p(Object o){ System.out.println(o); } }