`

fileuploadfield 上传原文件名及原文件类型的取法

 
阅读更多

在ext中fileuploadfield 组件提供了文件上传的功能,可是问题在于如果我们在后台用File取得上传的文件,ext会只给你一个缓存文件,也就是说原文件的信息不见了!那么如何取得原文件的信息呢?请看下面代码:

在JS中有这么一段代码:

{
xtype:"fieldset",
labelWidth:1,
title:"导入XML",
items:[{
height:5,
border:false
},{
xtype:"fileuploadfield",
name:"serviceXml",
buttonText: '上传标准XML文件',
buttonOnly: true,
buttonCfg: {
height:15,
width:150
},
listeners: {
'fileselected': {
fn:this.xmlUpload,
scope:this
}
}
}]
}

此处是生成一个fileuploadfield组件,名字为serviceXml,是想上传xml文件

后台:

private File serviceXml; //上传文件
private String serviceXmlFileName;//上传原文件名
private String serviceXmlContentType;//上传原文件类型

//上传xml
public String uploadXml() {
boolean flag = false;
jsonObject = new JSONObject();

try{
if (serviceXml != null) {

//取得原文件类型
String fileType = serviceXmlContentType.substring(serviceXmlContentType.indexOf("/") + 1);
if(fileType.indexOf("xml")>0){
SAXReader read = new SAXReader();
Document document = read.read(serviceXml);
Element root = document.getRootElement();
List<Element> nodes = root.elements();
for(Element node : nodes){
String nodeName = node.getName();
String nodeValue = node.getText();
if("url".equals(nodeName)) jsonObject.put("url", nodeValue);
if("serviceType".equals(nodeName)) jsonObject.put("serviceType", nodeValue);
if("title".equals(nodeName)) jsonObject.put("title", nodeValue);
if("serviceTypeVersion".equals(nodeName)) jsonObject.put("serviceTypeVersion", nodeValue);
if("purpose".equals(nodeName)) jsonObject.put("purpose", nodeValue);
if("dateTime".equals(nodeName)) jsonObject.put("dateTime", nodeValue);
if("keywrds".equals(nodeName)) jsonObject.put("keywrds", nodeValue);
if("mabstract".equals(nodeName)) jsonObject.put("mabstract", nodeValue);
if("individualName".equals(nodeName)) jsonObject.put("individualName", nodeValue);
if("organisationName".equals(nodeName)) jsonObject.put("organisationName", nodeValue);
if("deliveryPoint".equals(nodeName)) jsonObject.put("deliveryPoint", nodeValue);
if("administrativeArea".equals(nodeName)) jsonObject.put("administrativeArea", nodeValue);
if("city".equals(nodeName)) jsonObject.put("city", nodeValue);
if("voice".equals(nodeName)) jsonObject.put("voice", nodeValue);
if("telphone".equals(nodeName)) jsonObject.put("telphone", nodeValue);
if("email".equals(nodeName)) jsonObject.put("email", nodeValue);
}
flag = true;
}else{
this.info = "请上传XML文件";
}
} else {
this.info = "XML上传失败,请检查网络状态!";
}
} catch(Exception e) {
e.printStackTrace();
log4jExecuteIndex.executeFunctionLog(super.getUser().getLoginame(), getRequest(), Log4jExecuteImpl.operateStateFail);
this.info = "XML上传失败,请检查网络状态!";
}
log4jExecuteIndex.executeFunctionLog(super.getUser().getLoginame(), getRequest(), Log4jExecuteImpl.operateStateSuccess);
jsonObject.put("success", true);
jsonObject.put("flag", flag);
jsonObject.put("msg", this.info);

return "jsonObject";
}

相信看了上段代码,大家都会明白,在ext的fileuploadfield组件中,定义了一个对象后,它会自动生成两个变量来装填这个原对象的属性,例如将组件名命名为OBJ那么它就会生成OBJFileNameOBJContentType这两个变量,而这两个变量中装的就是原文件所对应的名字和类型

注意:这三个变量一定要有getter和setter方法

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics