Java Web实现使用浏览器从服务器下载文件(后台)
发布时间:2020-12-15 07:47:57 所属栏目:Java 来源:网络整理
导读:Java Web实现 使用浏览器从服务器下载文件。 下面实现两种情况的下载,需求如下: 需求(一): 1、用户在页面填写表单。 2、填写完成后,选择下载,将表单内容发往后台。 3、后台根据内容生产一个文件,发送给前端。 4、前端成功下载文件到本地。 此需求简
Java Web实现 使用浏览器从服务器下载文件。 需求(一): 后台设计思路: 代码实现: public void download(HttpServletResponse response){ JSONObject json = new JSONObject(); /* 假设这是前端使用JSON放过来的数据 */ json.put("A","1"); json.put("B","2"); json.put("C","3"); /* 遍历JSON,将JSON的值放至缓冲区 */ StringBuilder sb = new StringBuilder(); Iterator it = json.keys(); while(it.hasNext()){ String key = (String)it.next(); String value = (String)json.get(key); sb.append(key).append("=").append(value).append("n"); } /* 设置文件ContentType类型,这样设置,会自动判断下载文件类型 */ response.setContentType("application/multipart/form-data"); /* 设置文件头:最后一个参数是设置下载文件名(假如我们叫a.ini) */ response.setHeader("Content-Disposition","attachment;filename=a.ini"); try{ /* 用流将数据写给前端 */ OutputStream os = response.getOutputStream(); os.write(sb.toString().getBytes()); os.flush(); os.close(); }catch (IOException ioe){ ioe.printStackTrace(); } } ?
后台设计思路: 代码实现: public void download() throws IOException{ //获取服务器文件 File file = new File("/home/a.txt"); InputStream ins = new FileInputStream(file); /* 设置文件ContentType类型,这样设置,会自动判断下载文件类型 */ response.setContentType("multipart/form-data"); /* 设置文件头:最后一个参数是设置下载文件名 */ response.setHeader("Content-Disposition","attachment;filename="+file.getName()); try{ OutputStream os = response.getOutputStream(); byte[] b = new byte[1024]; int len; while((len = ins.read(b)) > 0){ os.write(b,0,len); } os.flush(); os.close(); ins.close(); }catch (IOException ioe){ ioe.printStackTrace(); } } ? 链接:https://blog.csdn.net/qq_28082757/article/details/72771166 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |