Newer
Older
PgInterface / src / main / java / com / casic / PgInterface / reservePlan / manager / PgReservePlanManager.java
xiaowei on 9 Nov 2017 2 KB first commit
package com.casic.PgInterface.reservePlan.manager;

import com.casic.PgInterface.core.hibernate.HibernateEntityDao;
import com.casic.PgInterface.reservePlan.domain.PgReservePlan;
import com.sun.org.apache.xml.internal.security.utils.Base64;
import org.springframework.stereotype.Service;
import org.springframework.web.context.request.RequestContextHolder;
import org.springframework.web.context.request.ServletRequestAttributes;
import org.springframework.web.multipart.MultipartFile;
import sun.misc.BASE64Decoder;

import javax.servlet.http.HttpServletRequest;
import java.io.File;
import java.io.FileOutputStream;
import java.util.List;

/**
 * Created by yxw on 2017/11/8.
 */
@Service
public class PgReservePlanManager extends HibernateEntityDao<PgReservePlan> {

    public String saveFiles(List<MultipartFile> files,String fileType){
        String [] fileNames = new String[files.size()];
        String [] fileBuffers = new String[files.size()];
        try {
            for (int i = 0; i < files.size(); i++) {
                fileNames[i] = files.get(i).getOriginalFilename();
                byte[] fis = files.get(i).getBytes();
                fileBuffers[i] = new String(Base64.encode(fis, Base64.BASE64DEFAULTLENGTH));
            }
            HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest();
            String strDirPath = request.getSession().getServletContext().getRealPath("");

            FileOutputStream fos = null;
            String image_toDir = strDirPath + "\\"+fileType;//存储路径
            String imageName = "";
            for (int i = 0; i < fileBuffers.length; i++) {
                if (fileBuffers[i] != null && fileNames[i] != null) {
                    imageName += fileType+"/"+fileNames[i] + ",";
                    byte[] buffer = new BASE64Decoder().decodeBuffer(fileBuffers[i]);//对android传过来的图片字符串进行解码
                    File destDir = new File(image_toDir);
                    if (!destDir.exists())
                        destDir.mkdirs();
                    File imageFile = new File(destDir, fileNames[i]);
                    fos = new FileOutputStream(imageFile);//保存图片
                    fos.write(buffer);
                    fos.flush();
                    fos.close();
                }
            }
            return imageName.substring(0,imageName.length()-1);
        }
        catch(Exception ex)
        {
            ex.printStackTrace();
            return "";
        }
    }


}