자바 File 을 MultipartFile 로 변환

1947 단어 자바
프로젝트 에서 네트워크 그림 을 로 컬 에 다운로드 한 후 사인 을 추가 한 후 파일 서버 에 업로드 합 니 다.다운로드 한 파일 은 File 형식 이기 때문에 업로드 인 터 페 이 스 는 MultipartFile 형식 을 받 아들 이기 때문에 File 을 MultipartFile 로 변환 해 야 합 니 다.1. comons - fileupload 의 jar 도입

            commons-fileupload
            commons-fileupload
            1.3.2


2. 파일 을 FileItem 으로 변환 하 는 방법 정의
import org.apache.commons.io.FilenameUtils;
import org.apache.commons.fileupload.FileItem;
import org.apache.commons.fileupload.FileItemFactory;
import org.apache.commons.fileupload.disk.DiskFileItemFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import org.springframework.web.multipart.MultipartFile;
import org.springframework.web.multipart.commons.CommonsMultipartFile;

  /**
     *  file   fileItem
     * @param file
     * @param fieldName
     * @return
     */
    private FileItem  getMultipartFile(File file, String fieldName){
        FileItemFactory factory = new DiskFileItemFactory(16, null);
        FileItem item = factory.createItem(fieldName, "text/plain", true, file.getName());
        int bytesRead = 0;
        byte[] buffer = new byte[8192];
        try {
            FileInputStream fis = new FileInputStream(file);
            OutputStream os = item.getOutputStream();
            while ((bytesRead = fis.read(buffer, 0, 8192)) != -1) {
                os.write(buffer, 0, bytesRead);
            }
            os.close();
            fis.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
        return item;
    }

3. 호출
 File file = new File("C://");          
 FileItem fileItem = this.getMultipartFile(file,"templFileItem");
 MultipartFile multipartFile = new CommonsMultipartFile(fileItem);

좋은 웹페이지 즐겨찾기