php中文网 | cnphp.com

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 492|回复: 0

对象File转换MultipartFile对象方法,便于上传到文件服务器

[复制链接]

3138

主题

3148

帖子

1万

积分

管理员

Rank: 9Rank: 9Rank: 9

UID
1
威望
0
积分
7946
贡献
0
注册时间
2021-4-14
最后登录
2024-11-21
在线时间
763 小时
QQ
发表于 2022-8-5 13:05:23 | 显示全部楼层 |阅读模式
[mw_shl_code=java,true]package com.mygeed.smart.core.core.utils.poi;

import org.apache.commons.fileupload.FileItem;
import org.apache.commons.fileupload.FileItemFactory;
import org.apache.commons.fileupload.disk.DiskFileItemFactory;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.web.multipart.MultipartFile;
import org.springframework.web.multipart.commons.CommonsMultipartFile;

import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.OutputStream;

/**
*
* `7MMM.     ,MMF'`YMM'   `MM' .g8"""bgd `7MM"""YMM  `7MM"""YMM  `7MM"""Yb.
*  MMMb    dPMM    VMA   ,V .dP'     `M   MM    `7    MM    `7    MM    `Yb.
*  M YM   ,M MM     VMA ,V  dM'       `   MM   d      MM   d      MM     `Mb
*  M  Mb  M' MM      VMMP   MM            MMmmMM      MMmmMM      MM      MM
*  M  YM.P'  MM       MM    MM.    `7MMF' MM   Y  ,   MM   Y  ,   MM     ,MP
*  M  `YM'   MM       MM    `Mb.     MM   MM     ,M   MM     ,M   MM    ,dP'
*.JML. `'  .JMML.   .JMML.    `"bmmmdPY .JMMmmmmMMM .JMMmmmmMMM .JMMmmmdP'   Art By Jack Wu
*
* @Author Jack Wu
* @Link 微信号:MYGEEDS
*          QQ:871213180
* @Descrition 对象File转换MultipartFile对象方法
*
*/
public class File2MultiPartFile<T> {

    private static final Logger log = LoggerFactory.getLogger(File2MultiPartFile.class);

    /**
     * 对象File转换MultipartFile对象方法
     *
     * @param file
     * @return
     */
    public MultipartFile convert(File file) {
        try {
            FileItem fileItem = createFileItem(file);
            MultipartFile multipartFile = new CommonsMultipartFile(fileItem);
            return multipartFile;
        } catch (Exception e) {
            throw new RuntimeException(e);
        } finally {
            if (file != null)
                file.deleteOnExit();
        }
    }

    /**
     * File对象转FileItem对象方法
     *
     * @param file
     * @return
     */
    private FileItem createFileItem(File file) {
        FileItemFactory factory = new DiskFileItemFactory(16, null);
        FileItem item = factory.createItem("textField", "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;
    }
}[/mw_shl_code]

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|php中文网 | cnphp.com ( 赣ICP备2021002321号-2 )

GMT+8, 2024-11-22 02:01 , Processed in 1.243279 second(s), 39 queries , Gzip On.

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2020, Tencent Cloud.

申明:本站所有资源皆搜集自网络,相关版权归版权持有人所有,如有侵权,请电邮(fiorkn@foxmail.com)告之,本站会尽快删除。

快速回复 返回顶部 返回列表