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过程,使用jexcel
14             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);
    }

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

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。