地质所 沉降监测网建设项目
zmk
2024-05-29 602be3f64c3709f9773284c48ca8aead180d060f
修改了上传文件的逻辑
2个文件已修改
81 ■■■■ 已修改文件
javaweb-plus/javaweb-cms/src/main/java/com/javaweb/geo/service/impl/ProjectDataServiceImpl.java 78 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
javaweb-plus/javaweb-cms/src/main/resources/templates/geo/projectData/upload.html 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
javaweb-plus/javaweb-cms/src/main/java/com/javaweb/geo/service/impl/ProjectDataServiceImpl.java
@@ -1,14 +1,17 @@
package com.javaweb.geo.service.impl;
import java.io.File;
import java.io.IOException;
import java.nio.charset.Charset;
import java.util.ArrayList;
import java.util.List;
import cn.hutool.core.io.FileUtil;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.ZipUtil;
import com.javaweb.common.config.Global;
import com.javaweb.common.core.domain.AjaxResult;
import com.javaweb.common.exception.BusinessException;
import com.javaweb.common.utils.DateUtils;
import com.javaweb.common.utils.IdGenerate;
import com.javaweb.common.utils.StringUtils;
@@ -46,6 +49,9 @@
    //解压文件
    private static String ZIPUploadPath2 = Global.getProfile() + "\\" + zipfile2 + "\\";
    //单文件存储路径
    private static String ZIPUploadPath2SingleFile = Global.getProfile() + "\\" + zipfile2 + "\\img\\";
    @Autowired
    private ProjectDataMapper projectDataMapper;
@@ -130,12 +136,22 @@
        return projectDataMapper.deleteProjectDataById(id);
    }
    @Override
    public AjaxResult uploadZIP(MultipartFile file, HttpServletRequest request) {
    public AjaxResult uploadZIP(MultipartFile file, HttpServletRequest request)  {
        String originalFilename = file.getOriginalFilename();
        //传入的钻孔的id
        String projectDataId = request.getParameter("projectDataId");
        //上传单文件
        if(ObjectUtil.isNotEmpty(originalFilename) && !originalFilename.endsWith(".zip")){
            uploadSingleFile(file,projectDataId);
            return AjaxResult.success("上传成功");
        }
        //上传ZIP文件
        //获取后缀.zip  保存的文件名
        String substring = originalFilename.substring(originalFilename.lastIndexOf("."));
@@ -161,19 +177,46 @@
        moveFile(moveDir);
        //更新数据库
        updateFilePath(projectDataId, ZIPUploadPath2 + UID +"\\" + originalFilename.replace(substring, "") );
        ProjectData projectData = new ProjectData();
        //更新  projectData  url
        String dataUrl = zipfile + "/" + UID +".zip";
        projectData.setDataUrl(dataUrl);
        projectData.setId(projectDataId);
        projectDataMapper.updateProjectData(projectData);
        updateFilePath(projectDataId, ZIPUploadPath2 + UID );
        FileUtil.del(new File(ZIPUploadPath + UID));
        return AjaxResult.success("上传成功");
    }
    //上传单文件
    private void uploadSingleFile(MultipartFile file,String projectDataId) {
        ProjectData projectData = projectDataMapper.selectProjectDataById(projectDataId);
        String projectId= projectData.getProjectId();
        String originalFilename= file.getOriginalFilename();
        //获取后缀  保存的文件名
        String substring = originalFilename.substring(originalFilename.lastIndexOf("."));
        String UID = IdGenerate.nextId();
        String dFileName = UID + substring;
        String filepath = ZIPUploadPath2SingleFile + dFileName;
        File destFile = new File(filepath);
        try{
            file.transferTo(destFile);
        }catch (Exception e){
            throw new BusinessException("保存失败!",e);
        }
        String url = filepath.replace(Global.getProfile(),"").replace("\\","/");
        HoleMedia media = new HoleMedia();
        media.setIds(IdGenerate.nextId());
        media.setRecordId(projectDataId);
        media.setProjectId(projectId);
        media.setName(originalFilename);
        media.setInternetPath(url);
        media.setCreateTime(DateUtils.getNowDate());
        mediaMapper.insertHoleMedia(media);
    }
    //移动 文件
@@ -189,17 +232,14 @@
        ProjectData projectData = projectDataMapper.selectProjectDataById(projectDataId);
        String projectId= projectData.getProjectId();
        File fileDir = new File(dirpath);
        List<File> files =   FileUtil.loopFiles(fileDir);
        if (fileDir.isDirectory()) {
            File[] files = fileDir.listFiles();
            int len = files.length;
            for (int i = 0; i < len; i++) {
                String filename = files[i].getName();
                String filepath = files[i].getPath();
        if(ObjectUtil.isNotEmpty(files)){
            for (File file : files){
                String filename = file.getName();
                String filepath = file.getPath();
                String url = filepath.replace(Global.getProfile(),"").replace("\\","/");
                HoleMedia media = new HoleMedia();
                media.setIds(IdGenerate.nextId());
                media.setRecordId(projectDataId);
@@ -209,7 +249,7 @@
                media.setCreateTime(DateUtils.getNowDate());
                mediaMapper.insertHoleMedia(media);
            }
        }
        }
    }
}
javaweb-plus/javaweb-cms/src/main/resources/templates/geo/projectData/upload.html
@@ -13,7 +13,6 @@
                <form id="formId"  enctype="multipart/form-data">
                    <div class="select-list">
                        <ul>
                             <li>
                                <p>上传文件:</p>
                               <input type="file" id="file" name="file"/>       
@@ -43,7 +42,7 @@
    
    function upload(){
        var file = $('#file').val();
        if (file == '' || (!$.common.endWith(file, '.zip'))){
        if (file == ''|| file ==null){
            $.modal.msgWarning("请选择待上传的文件");
            return false;
        }