在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那么它就会生成OBJFileName和OBJContentType这两个变量,而这两个变量中装的就是原文件所对应的名字和类型
注意:这三个变量一定要有getter和setter方法
分享到:
相关推荐
uEditor上传图片并保存为原文件名,参照了网上的,原本是不能保存为原文件名的。
1,原文件名前,后加入自定义字符! 2,原文件名中间,加入自定义字符! 3,原文件名前后中间加入自定义字符! 4,修改文件后缀名! 5,各种混搭改名![捂脸哭] 6,正在更新中。。。 希望能帮到大家,也希望大家...
asp文件上传(原文件名),提供很好的学习资料。文件上传没有问题。
C++创建自定义文件名的文件 C++创建自定义文件名的文件 C++创建自定义文件名的文件 C++创建自定义文件名的文件 C++创建自定义文件名的文件 C++创建自定义文件名的文件 C++创建自定义文件名的文件 C++创建自定义...
html前端技术,原生js上传文件,代码结构清晰、简短、易于理解,建议收藏。
php实现文件上传并返回获得上传后生成的文件名。
js获取file标签上传文件的文件名,可以获取文件名判断文件是否重复 以及对文件上传做控制
C#Socket文件传输,将文件名和文件保存到一个byte[]中传输,再通过解析获取文件名和文件保存到本地文件夹中
易语言取路径文件名源码,取路径文件名,取路径文件名_
java导出文件文件名处理
批量修改文件名,可指定文件类型。
批量更改文件名 批量更改文件名 替换文件名 批量智能命名文件
JAVA根据文件名检索文件JAVA根据文件名检索文件JAVA根据文件名检索文件JAVA根据文件名检索文件JAVA根据文件名检索文件JAVA根据文件名检索文件JAVA根据文件名检索文件
进入指定目录下,获取指定类型文件名,并可以对文件名进行修改,c++代码
很棒的文件名及文件内容搜索工具,可搜索office文档中的内容。
易语言模块取句柄对应全路径文件名2.1.rar 易语言模块取句柄对应全路径文件名2.1.rar 易语言模块取句柄对应全路径文件名2.1.rar 易语言模块取句柄对应全路径文件名2.1.rar 易语言模块取句柄对应全路径文件名2.1....
Windows将文件夹下的所有文件名提取到文本文件,直接下载后放到当前文件夹中,点击运行,即可提取所有文件的文件名到txt文件中。
获取文件名保存到TXT文件.bat 你懂的。一个文件夹下面的所有文件名都统一保存到一个TXT文本里。
根据多个文件名批量查找文件,批量文件名清单查找移动和存储文件,按文件名清单搜索复制剪切文件,如果你是根据文件清单删掉部分文件也是可以的,就用剪切的方法给他剪切走,具体的软件操作说明(如果没有积分可文章...
会在 "原文件名"列(A列)生成文件对应的文件名。 2、在"修改后文件名"列(B列)中输入想要修改后的文件名。 3、点击“重命名文件”后即可。 注: 修改后的文件名不要与原文件名有同名的,会造成修改文件名不成功...