後端實現文件(圖片,視頻)實現文件上傳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();
    }

}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章