上传的封装

来源:互联网 发布:知乎 推荐最新的电影 编辑:程序博客网 时间:2024/05/17 10:52

本文章的好处在于可以用于多个浏览器使用,多个上传

XML文件配置

<!-- 配置文件上传 -->  
     <bean id="multipartResolver"
           class="org.springframework.web.multipart.commons.CommonsMultipartResolver"
           p:defaultEncoding="utf-8">
    </bean>


封装类

package com.zxxy.bean;

import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.util.Calendar;
import java.util.Date;
import java.util.List;

import javax.servlet.http.HttpServletRequest;

import org.springframework.web.multipart.MultipartFile;

public class upLoad {
    public static void getUpload(List<MultipartFile> mlist,HttpServletRequest req,String newsuppId,User u ){
        String path=req.getServletContext().getRealPath("/actter");//得到服务器端地址
        int i1=0;
        for(MultipartFile mult:mlist){//MultipartFile自带解析方法
             String oldeName=mult.getOriginalFilename();//得到老名字
             if(oldeName!=null&&!"".equals(oldeName)){
                //修改后的名字=毫秒值+原来的老名字
                 String newName=System.currentTimeMillis()+oldeName;//新名字,避免名字重复所以取时分秒
                 int xiabiao=oldeName.lastIndexOf(".");//截取字符串
                //得到后缀(三元运算符也可以分开写)
                    String suffix=xiabiao>0?oldeName.substring(xiabiao+1):"";
//                    if(xia>0){
//                        suffix=file.substring(xia+1);
//                    }else {
//                        suffix="";
//                    }
                 String realPath=path+"actter/"+getRiQi()+newName;
                 String newRealPath=path+"actter/"+getRiQi();
                 File f1=new File(newRealPath);
                 f1.getParentFile().mkdirs();//创建文件夹(多个上传)
                 // f1.getParentFile().mkdir();单个文件夹
                
                 Actter ac=new Actter();
                 ac.setOldname(oldeName);
                 ac.setSavename(newName);
                 ac.setAdddate(new Date());
                 ac.setSavepath(newRealPath);
                try {
                    InputStream is=mult.getInputStream();
                    OutputStream os=new FileOutputStream(newRealPath);
                    byte[] bys=new byte[2048];
                    int len=0;
                    while((len=is.read(bys))!=-1){
                        os.write(bys, 0,len);
                    }
                    os.close();
                    is.close();
                } catch (IOException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
             }
            
        }
        
    }
    public static String getRiQi(){
        Calendar calendar=Calendar.getInstance();
        StringBuffer sb=new StringBuffer();
        sb.append(calendar.get(Calendar.YEAR)).append("/");
        sb.append(calendar.get(Calendar.MONTH)+1).append("/");
        sb.append(calendar.get(Calendar.DATE)).append("/");
        return sb.toString();
    }
}

Controller



Service层

public interface ActterService {
    //添加附件
    public boolean addActter(Actter a);
    public List<Actter> findActter();
//    //通过id找到对应的所有附件
    public Actter findActterById(int id);
//    //通过id找到对应的附件对象
//    public Actter findActter(int id);
   

原创粉丝点击