package com.casic.PgInterface.construction.manager; import com.casic.PgInterface.construction.dto.PgCsDocumentDto; import com.casic.PgInterface.core.hibernate.HibernateEntityDao; import com.casic.PgInterface.construction.domain.PgCsDocument; import com.casic.PgInterface.core.util.StringUtils; import com.casic.PgInterface.core.util.DateUtils; import com.sun.xml.internal.ws.client.ResponseContextReceiver; import org.hibernate.Criteria; import org.hibernate.criterion.Order; import org.hibernate.criterion.Restrictions; 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 javax.servlet.http.HttpServletResponse; import java.io.File; import java.io.FileOutputStream; import java.io.OutputStream; import java.util.ArrayList; import java.util.List; /** * Created by zxh on 2018/3/28. */ @Service public class PgCsDocumentManager extends HibernateEntityDao<PgCsDocument>{ 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 ""; } } public String saveFiles(String fileBuffer, String fileName, String fileType){ try { HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest(); String strDirPath = request.getSession().getServletContext().getRealPath(""); FileOutputStream fos = null; String image_toDir = strDirPath + "\\"+fileType;//存储路径 String imageName = ""; imageName += fileType+"/"+fileName; byte[] buffer = new BASE64Decoder().decodeBuffer(fileBuffer);//对android传过来的图片字符串进行解码 File destDir = new File(image_toDir); if (!destDir.exists()) destDir.mkdirs(); File imageFile = new File(destDir, fileName); fos = new FileOutputStream(imageFile);//保存文件 fos.write(buffer); fos.flush(); fos.close(); return imageName; } catch(Exception ex) { ex.printStackTrace(); return ""; } } /*下载*/ public String downFile(String fileName, String fileType){ try { HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest(); String strDirPath = request.getSession().getServletContext().getRealPath(""); Criteria criteria = createCriteria(PgCsDocument.class); criteria.add(Restrictions.eq("active", 1)); List<PgCsDocument> pgCsDocumentList = criteria.list(); if (pgCsDocumentList == null || pgCsDocumentList.size() == 0) return null; FileOutputStream fos = null; String image_toDir = strDirPath + "\\" + fileType + "/" + fileName; File destDir = new File(image_toDir); if (!destDir.exists()) destDir.mkdirs(); byte[] buffer = new BASE64Decoder().decodeBuffer(image_toDir); fos.write(buffer); fos.flush(); fos.close(); return image_toDir; } catch (Exception e) { e.printStackTrace(); return ""; } } /*查询*/ public List<PgCsDocumentDto> getAllDocData(String cs_name ,String cs_type,String cs_time) { List<PgCsDocumentDto> pgCsDocumentDtoList = new ArrayList<PgCsDocumentDto>(); try { Criteria criteria = createCriteria(PgCsDocument.class); criteria.addOrder(Order.desc("id")); criteria.add(Restrictions.eq("cs_name", cs_name)); criteria.add(Restrictions.eq("cs_type", cs_type)); if (StringUtils.isNotBlank(cs_time)) { criteria.add(Restrictions.like("cs_time", DateUtils.sdf4.parse(cs_time))); } List<PgCsDocument> pgCsDocumentList=criteria.list(); for (PgCsDocument pgCsDocument : pgCsDocumentList) { pgCsDocumentDtoList.add(new PgCsDocumentDto(pgCsDocument)); } } catch(Exception ex) { return null; } return pgCsDocumentDtoList; } /* *根据工程名称查找 */ public PgCsDocument getDocByCsName(String cs_name) { Criteria criteria=createCriteria(PgCsDocument.class); criteria.add(Restrictions.eq("cs_name",cs_name)); List<PgCsDocument> pgCsDocumentList=criteria.list(); if(pgCsDocumentList.size()==0) return null; else return pgCsDocumentList.get(0); } }