com.oreilly.servlet.FileMap Maven / Gradle / Ivy
package com.oreilly.servlet;
import java.util.Collections;
import java.util.Enumeration;
import java.util.LinkedHashMap;
import java.util.Set;
/**
* 装载文件的table
*
* 上传文件时,使用相同name时只能获取到最后的一个。
*
* 修改:当重复时,统一将key添加后缀`_N`如name_0
*
* @author L.cm
*
*/
class FileMap {
private int index = 0;
private LinkedHashMap map = new LinkedHashMap();
/**
* put
* @param key 键
* @param value 值
* @return boolean
*/
public UploadedFile put(String key, UploadedFile value) {
if (map.containsKey(key)) {
key = key + "_" + (index++);
}
return map.put(key, value);
}
/**
* get List by key
* @param key 键
* @return List
*/
public UploadedFile get(String key) {
return map.get(key);
}
/**
* keys 此处需要还原为真实的大小,一个key一个
* @return key 集合
*/
public Enumeration keys() {
return Collections.enumeration(map.keySet());
}
/**
* jfinal 3.2 以及后续版本使用该方法来取出上传文件的文件名
* 避免构造 Enumeration 对象
*/
public Set getFileNameSet() {
return map.keySet();
}
/**
* 用于在发生异常后删除所有已上传文件
*/
public void deleteAllFiles() {
for (UploadedFile uf : map.values()) {
try {
java.io.File file = uf.getFile();
if (file != null) {
file.delete();
}
}
catch (Exception e) {
// ignore
}
}
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy