java图片上传重命名后保存到本地工具类实现代码

程序介绍

下面是一个简单的图片上传工具类的示例代码。这个类可以将一个图片文件上传到服务器,并将图片文件名改为随机字符串,然后保存到指定的本地目录中。这个工具类使用 Spring Framework 的 MultipartFile 类来处理上传的图片文件。它会将图片文件名更改为随机字符串,并将文件保存到指定的本地目录中。 您可以在自己的 Java Web 应用程序中使用此工具类,例如在 Controller 中调用它来处理文件上传请求,然后将上传后的文件路径存储到数据库中或返回给客户端。需要注意的是,您需要根据自己的实际情况修改上传文件保存目录、随机字符串长度等参数。

源代码

import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.util.Random;

import org.apache.commons.io.FilenameUtils;
import org.springframework.web.multipart.MultipartFile;

public class ImageUploadUtil {
    // 上传文件保存目录
    private static final String UPLOAD_DIRECTORY = "/Users/username/Desktop/images/";

    /**
     * 将文件保存到本地
     * 
     * @param file 要保存的文件
     * @return 文件保存后的新名称
     * @throws IOException 如果保存失败
     */
    public static String saveFile(MultipartFile file) throws IOException {
        String originalFilename = file.getOriginalFilename();
        String extension = FilenameUtils.getExtension(originalFilename);
        String randomName = getRandomString() + "." + extension;
        String destination = UPLOAD_DIRECTORY + randomName;

        InputStream inputStream = file.getInputStream();
        FileOutputStream outputStream = new FileOutputStream(destination);

        byte[] buffer = new byte[1024];
        int bytesRead;
        while ((bytesRead = inputStream.read(buffer)) != -1) {
            outputStream.write(buffer, 0, bytesRead);
        }

        outputStream.flush();
        outputStream.close();
        inputStream.close();

        return randomName;
    }

    /**
     * 生成一个随机字符串
     * 
     * @return 随机字符串
     */
    private static String getRandomString() {
        String alphabet = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
        StringBuilder sb = new StringBuilder();

        for (int i = 0; i < 16; i++) {
            int index = new Random().nextInt(alphabet.length());
            sb.append(alphabet.charAt(index));
        }

        return sb.toString();
    }
}

 

© 版权声明
THE END
喜欢就支持一下吧
点赞5赞赏 分享