码迷,mamicode.com
首页 > Web开发 > 详细

web文件上传和下载

时间:2014-08-28 14:42:59      阅读:246      评论:0      收藏:0      [点我收藏+]

标签:style   blog   http   color   os   使用   io   ar   文件   

文件的上传和下载是网络编程经常出现的问题,虽然比较基础但是通常用的时候就会忘记一些细节,因此在这里将一些细节po出来。

1.文件下载

文件的下载比较简单,前端我们只需要进行一次get请求即可:

bubuko.com,布布扣
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文件作为输出:

bubuko.com,布布扣
 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);
    }

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

web文件上传和下载

标签:style   blog   http   color   os   使用   io   ar   文件   

原文地址:http://www.cnblogs.com/fbcorz/p/3941422.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!