首页 > 代码库 > web文件上传和下载

web文件上传和下载

文件的上传和下载是网络编程经常出现的问题,虽然比较基础但是通常用的时候就会忘记一些细节,因此在这里将一些细节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>
View Code

后台的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过程,使用jexcel14             workbook.write();//写入15             workbook.close();16     }
View Code

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);    }

这里没有具体写出输出数据流和把数据流保存至文件,读者可以根据自己情况自行查找解决办法。

web文件上传和下载