java 上传文件不重名
时间: 2023-08-09 17:01:49 浏览: 123
java实现动态上传多个文件并解决文件重名问题
在Java中实现文件上传不重名的方法有多种方式,下面介绍两种常见的方法。
第一种方法是通过在文件名后添加随机字符串或时间戳来确保文件不重名。可以使用`java.util.UUID`类生成唯一的随机字符串,或使用`java.time`包中的相关类获取当前时间戳作为文件名的一部分。示例如下:
```java
import java.util.UUID;
String originalFileName = "example.txt";
String fileExtension = originalFileName.substring(originalFileName.lastIndexOf("."));
String newFileName = UUID.randomUUID().toString() + fileExtension;
// 上传新文件,使用newFileName作为文件名
```
第二种方法是使用文件名的哈希值作为文件名的一部分。可以使用`java.security.MessageDigest`类来计算文件名的哈希值,然后将其与原始文件名拼接成新的文件名。示例如下:
```java
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
String originalFileName = "example.txt";
String fileExtension = originalFileName.substring(originalFileName.lastIndexOf("."));
String hash = "";
try {
MessageDigest md = MessageDigest.getInstance("MD5");
md.update(originalFileName.getBytes());
byte[] digest = md.digest();
StringBuilder sb = new StringBuilder();
for (byte b : digest) {
sb.append(Integer.toHexString((b & 0xFF) | 0x100).substring(1, 3));
}
hash = sb.toString();
} catch (NoSuchAlgorithmException e) {
e.printStackTrace();
}
String newFileName = hash + fileExtension;
// 上传新文件,使用newFileName作为文件名
```
以上是两种常见的实现方式,可以根据具体的需求选择适合的方法来确保文件上传不重名。
阅读全文