程序介绍
下面是一个简单的图片上传工具类的示例代码。这个类可以将一个图片文件上传到服务器,并将图片文件名改为随机字符串,然后保存到指定的本地目录中。这个工具类使用 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