后端实现文件(图片,视频)实现文件上传FTP删除

前端实现

不多说,直接上代码

在这里插入图片描述

Controller

@CrossOrigin
@Controller
@RequestMapping("/management/good")
public class ManageGoodController {


    @Autowired
    FileService fileService;

    @ResponseBody
    @DeleteMapping("/delete/{name}") 
    public  ServerResponse delete(@PathVariable("name") String name) throws IOException {

        boolean res = fileService.delete(name);

        return ServerResponse.createBySuccess(res);
    }

    @ResponseBody
    @PostMapping("/upload")
     public  ServerResponse upload(MultipartFile file, HttpServletRequest httpServletRequest){

         String targetFileName = fileService.upload(file,httpServletRequest);
         String url = PropertiesUtil.getProperty("ftp.server.http.prefix")+targetFileName;

         Map fileMap = Maps.newHashMap();
         fileMap.put("uri",targetFileName);
         fileMap.put("url",url);
         return ServerResponse.createBySuccess(fileMap);
    }
}

FileService

import org.springframework.web.multipart.MultipartFile;

import javax.servlet.http.HttpServletRequest;
import java.io.IOException;

public interface FileService {
     String upload(MultipartFile file, HttpServletRequest httpServletRequest);
     boolean delete(String name) throws IOException;
}

首先要明白FTP,这里有封装的FTP类

FileServiceImpl

import com.takefree.service.FileService;
import com.takefree.utility.FTPUtil;
import org.springframework.stereotype.Service;
import org.springframework.web.multipart.MultipartFile;

import javax.servlet.http.HttpServletRequest;
import java.io.File;
import java.io.IOException;
import java.util.UUID;


@Service
public class FileServiceImpl implements FileService {
   public boolean delete(String name) throws IOException {

        return  FTPUtil.deleteFile(name);
    }
    public String upload(MultipartFile file, HttpServletRequest httpServletRequest)
    {            

        //准备工作: MultipartFile截取扩展名--> 再分配名字  --> 选择暂存到项目的文件夹路径resource/upload --> 创建文件夹
        String fileName=file.getOriginalFilename();
        String fileExName=fileName.substring(fileName.lastIndexOf(".")+1);
        String uploadFileName= UUID.randomUUID().toString()+"."+fileExName;
        String path=httpServletRequest.getSession().getServletContext().getRealPath("upload");
        File fileDir=new File(path);
        if(!fileDir.exists()) {
            fileDir.setWritable(true);
            fileDir.mkdirs();
        }
        File targetFile=new File(path,uploadFileName);
        
        //开始工作
        try {
            //MultipartFile已经移到项目
            file.transferTo(targetFile);
            //上传FTP服务器上
            FTPUtil.uploadFile(Lists.newArrayList(targetFile));
            //删除upload下面的文件
            targetFile.delete();
        } catch (IOException e) {
            e.printStackTrace();
        }
        return  targetFile.getName();
    }

}

猜你喜欢

转载自blog.csdn.net/qq_42146775/article/details/106768855