package org.nutz.mvc.upload;
import java.io.File;
import java.util.HashMap;
import java.util.Map;
import org.nutz.lang.Strings;
public class FieldMeta {
public FieldMeta(String s) {
map = new HashMap<String, String>();
String[] ss = Strings.splitIgnoreBlank(s, "[\n;]");
for (String pair : ss) {
String name = pair.split("[:=]")[0];
String value = pair.replaceAll("^[^=:]*[=:]", "");
map.put(Strings.trim(name), formatValue(value));
}
}
private static String formatValue(String s) {
s = Strings.trim(s);
if (null != s && s.length() > 2 && s.charAt(0) == '"')
return s.substring(1, s.length() - 1);
if ("\"\"".equals(s))
return "";
return s;
}
Map<String, String> map;
public String getContentType() {
return map.get("Content-Type");
}
public String getName() {
return map.get("name");
}
public String getFileLocalPath() {
return map.get("filename");
}
public String getFileLocalName() {
return (new File(getFileLocalPath().replace('\\', '/'))).getName();
}
public String getFileExtension() {
String name = getFileLocalPath();
int pos = name.lastIndexOf('.');
if (pos >= 0)
return name.substring(pos);
return "";
}
public String getContentDisposition() {
return map.get("Content-Disposition");
}
public boolean isFile() {
return null != getFileLocalPath();
}
}