请选择 进入手机版 | 继续访问电脑版

php中文网 | cnphp.com

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 169|回复: 0

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

[复制链接]

2112

主题

2119

帖子

7704

积分

管理员

Rank: 9Rank: 9Rank: 9

UID
1
威望
0
积分
5470
贡献
0
注册时间
2021-4-14
最后登录
2022-12-2
在线时间
522 小时
QQ
发表于 2022-8-5 13:05:23 | 显示全部楼层 |阅读模式
[Java] 纯文本查看 复制代码
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;
    }
}





上一篇:opencv车辆检测系统
下一篇:Python实现BGV同态加密代码
回复

使用道具 举报

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

本版积分规则

php中文网 | cnphp.com ( 赣ICP备2021002321号-2 )51LA统计

GMT+8, 2022-12-2 12:10 , Processed in 0.451986 second(s), 33 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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

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