文件的上传和下载是网络编程经常出现的问题,虽然比较基础但是通常用的时候就会忘记一些细节,因此在这里将一些细节po出来。
1.文件下载
文件的下载比较简单,前端我们只需要进行一次get请求即可:
1 <button onclick=‘getFile();‘>Import</button> 2 3 <script> 4 function getFile(){ 5 var url = "/istore/servlet/b2b/group/downloadModel.do"; 6 window.location.href=url; //此处写入要跳转的sevlet 7 } 8 </script>
后台的sevelet将内容传回给前台这里我自己创建了一个excel文件作为输出:
1 public void downloadModel(HttpServletRequest request, 2 HttpServletResponse response) throws IOException, RowsExceededException, WriteException { 3 4 String filename = "model.xls";//保存的默认文件名 5 6 response.setHeader("content-disposition", "attachment;filename=" 7 + URLEncoder.encode(filename, "UTF-8"));//将文件名设置为返回的头部信息(十分重要) 8 OutputStream out = response.getOutputStream(); //设置返回的数据流 9 WritableWorkbook workbook = Workbook.createWorkbook(out); 10 WritableSheet sheet = workbook.createSheet("inputlist", 0); 11 Label lab = null; 12 lab = new Label(0, 0, "LogonId"); 13 sheet.addCell(lab);//以上为创建excel过程,使用jexcel 14 workbook.write();//写入 15 workbook.close(); 16 }
2.文件上传
这里前台只写出js代码(使用了jQuery语法)
function Upload(){ var file = $("#uploadfile") file.after(file.clone().val("")); file.remove(); $("#groupId").val(xgroup_id); var url = "/istore/servlet/b2b/group/bulkUpload.do"; //判断文件是否为空 var uploadfile = jQuery("#uploadfile").val(); if(uploadfile=="") { alert("Please select the file you want to upload!"); return; } //判断拓展名是否正确 if(uploadfile.toLowerCase().indexOf(‘.xls‘)==-1){ alert("The file you choosed is not a valid file,please select the valid files(extension ‘.xls‘)!"); return; }else{ $(this).dialog( "close" ); //提交请求 var options ={url:‘bulkUpload.do‘,type:‘post‘,dataType:‘json‘, success:function(data){ alert(data); } }
后台servlet:
public String Upload_member(HttpServletRequest request, HttpServletResponse response, @RequestParam("uploadfile") MultipartFile file) { PrintWriter out = null; //上传的编码格式 response.setContentType("text/html;charset=UTF-8"); String result = null; try { //print是我写的一个输出函数,是将数据流内容输出的,uploadfile会将内容保存,并返回保存状态 print(file.getInputStream()); result = uploadFile(file, request); } catch (Exception e) { } return JSONObject.toJSONString(result); }
这里没有具体写出输出数据流和把数据流保存至文件,读者可以根据自己情况自行查找解决办法。
时间: 2024-10-10 16:02:00