EXT学习教程:http://www.cnblogs.com/iamlilinfeng/category/385121.html

Ext文件上传:

例子用到的jar:


 
 1.upload.js

/*
case of upload
*/
Ext.onReady(function(){
//初始化标签中的Ext:Qtip属性。
Ext.QuickTips.init();
Ext.form.Field.prototype.msgTarget = 'side';
/*
var imageBox = new Ext.BoxComponent({
autoEl:{
//style: 'width:150px;height:150px;margin:0px auto;border:1px solid #ccc; text-align:center;padding-top:20px;margin-bottom:10px',
style:'width:150px;height:150px;border:1px solid #ccc;text-align:center',
tag:'div',
id:'showImage'
},
width:333,
height:277
});*/ var upload_form = new Ext.form.FormPanel({
title: '',
baseCls:'x-plain',
labelWidth:70,
labelHeight:150,
fileUpload:true,
defaultType : 'textfield',
items:[{
xtype:'textfield',
fieldLabel:'select file',
name:'userfile',
id:'userfile',
inputType:'file',
anchor:'95%'
}]
}); var win_upload = new Ext.Window({
title:'Upload :',
width:444,
height:140,
bodyStyle : 'padding:10px 10px 10px 10px;',
resizable:true,
modal:true,
closable:true,
maximizable:true,
minimizable:true,
buttonAlign:'right',
items:[upload_form],
buttons:[{
text:'reset',
handler:function(){
upload_form.getForm().reset();
}
},{
text:'upload',
handler:function(){
if(upload_form.getForm().isValid()){
if(Ext.getCmp('userfile').getValue() == ''){
Ext.Msg.alert('Warm :','please choose file!');
return;
}
/*
Ext.Msg.show({
title:'waiting:',
waitMsg:'uploading...',
progressText:'',
width:300,
progress : true,
closable : false,
animEl : 'loding'
});*/
upload_form.getForm().submit({
method:'POST',
url:'uploadServlet',
waitMsg:'uploading...',
success:function(upload_form,action){
//var path = Ext.getCmp('userfile').getValue();
//document.getElementById('showImage').innerHTML = '<img src="'+path+'" />';
Ext.Msg.alert('success:','upload success!');
//win_upload.hide();
},
failure:function(upload_form,action){
Ext.Msg.alert('failure:','upload failure!');
}
});
}
}
}]
});
win_upload.show();
});

2.uploadServlet.java

package servlet;

import java.io.File;
import java.io.IOException;
import java.util.List; import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; import org.apache.commons.fileupload.FileItem;
import org.apache.commons.fileupload.FileItemFactory;
import org.apache.commons.fileupload.disk.DiskFileItemFactory;
import org.apache.commons.fileupload.servlet.ServletFileUpload;
import org.json.JSONObject; /**
* Servlet implementation class uploadServlet
*/
public class uploadServlet extends HttpServlet {
private static final long serialVersionUID = 1L; /**
* @see HttpServlet#HttpServlet()
*/
public uploadServlet() {
super();
// TODO Auto-generated constructor stub
} /**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
} /**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
response.setContentType("text/html");
response.setCharacterEncoding("UTF-8");
try {
FileItemFactory factory = new DiskFileItemFactory();
ServletFileUpload fileUpload = new ServletFileUpload(factory);
fileUpload.setHeaderEncoding("UTF-8");// 解决中文名乱码
List<FileItem> fileItems = fileUpload.parseRequest(request);
for(FileItem item:fileItems){//忽略其他表单信息
if (!item.isFormField()) {
String name = "";
String BrowserType = request.getHeader("User-Agent").toLowerCase().toString();
//浏览器判断
if (BrowserType.indexOf("firefox")>0 ||BrowserType.indexOf("chrome")>0) {
name = item.getName();
}else{
name = item.getName();
String [] names = name.split("\\\\");// (IE浏览器绝对路径,split获取文件名及后缀) regex为\\\\,因为在java中\\表示一个\,而regex中\\也表示\,所以当\\\\解析成regex的时候为\\。
name = names[names.length-1];
}
File uploadFile = new File("E:\\",name);
item.write(uploadFile);
}
}
//
JSONObject obj = new JSONObject();
obj.put("success","true");
response.getWriter().print(obj.toString()); } catch (Exception e) {
e.printStackTrace();
// TODO: handle exception
} } }

extjs文件上传的更多相关文章

  1. PHP+ExtJS 文件上传示例

    xtJS 4 有一个非常方便的文件上传组件,可以用来将文件上传到服务器.本文PHP教程UncleToo将介绍使用PHP和ExtJS实现文件上传功能. 首先,创建文件上传组件Ext.form.Panel ...

  2. Extjs文件上传问题总结

    本来文件上传是一个简单而常用的功能,但是,由于刚刚接触extjs,对extjs中的控件及其使用方法并不熟悉,导致本来一个很快就可以搞定的文件上传问题,弄了将近两天的时间.现将问题及解决办法发出来,供有 ...

  3. 自定义ExtJS文件上传

    日常工作中,一般文件上传都是跟随表单一起提交的,但是遇到form表单中有许多地方有文件上传时这种方式却不是很适用,以下是我工作中用的文件上传方式: { xtype: 'fileuploadfield' ...

  4. struts2+extjs文件上传完整实现(攻克了上传中的各种问题)

    版权声明:本文为博主原创文章.未经博主同意不得转载. https://blog.csdn.net/shanhuhau/article/details/28617999 首先须要引入上传控件 <s ...

  5. ExtJs文件上传(Ext.ux.form.FileUploadField)

    Ext.ux.form.FileUploadField = Ext.extend(Ext.form.TextField, { /**  * @cfg {String} buttonText The b ...

  6. Extjs 文件上传

    function fromExcel(){ var dxjgdm_sel = Ext.get("dxjgdm").getValue(); var dxjglx_sel = Ext. ...

  7. [转]ExtJs入门之filefield:文件上传的配置+结合Ajax完美实现文件上传的asp.net示例

    原文地址:http://www.stepday.com/topic/?459 作文一个ExtJs的入门汉子,学习起来的确是比较费劲的事情,不过如今在这样一个网络资源如此丰富的时代,依然不是那么难了的. ...

  8. extjs插件开发上传下载文件简单案例

    前台,extjs,框架,mybatis,spring,springMVC,简单的文件上传下载案例. 必要的jar包,commons-fileupload-1.3.1.jar,commons-io-2. ...

  9. extjs实现简单的多文件上传(不借助任何插件),以及包含处理上传大文件的错误的各种处理办法

    在extjs的学习过程中,有遇到过有关多文件上传的问题,但是网上的大多数都是专门的去实现多文件上传而去做的组件之类的,没有特别简单的方式,于是小白便做了下面的内容,只是通过动态的去添加extjs的自带 ...

随机推荐

  1. Hadoop 中文编码相关问题 -- mapreduce程序处理GBK编码数据并输出GBK编码数据(转)

    hadoop的hdfs文件系统中,默认的是utf-8, 故你上传的文件是要设置成utf-8.当输入的是gbk,有该如何? 输入是GBK文件, 输出也是 GBK 文件的示例代码: Hadoop处理GBK ...

  2. UML中的stereotype

    在使用rose的时候.rose的类里面有个stereotype的选项.选择了不同的选项类会呈现不同的图形效果.这里对stereotype做一点总结, Stereotyp英文的原意是印刷中的铅字.比如, ...

  3. Android虚拟机中的sqlite数据库文件

    Android虚拟机中的sqlite数据库文件 ①

  4. loj 1026( tarjan + 输出割边 )

    题目链接:http://lightoj.com/volume_showproblem.php?problem=1026 思路:Tarjan 算法简单应用.割边的特点:low[v]>dfn[u]( ...

  5. SQL Server--用户自定义函数

    除了使用系统提供的函数外,用户还可以根据需要自定义函数.用户自定义函数是 SQL Server 2000 新增的数据库对象,是 SQL Server 的一大改进.与编程语言中的函数类似,Microso ...

  6. ContainerBase.addChild: start: org.apache.catalina.LifecycleException: Failed to start component解决

    第一:先确定一下开发流程是否正确 1.写好servlet组件类 2.写好web.xml文件--向服务器介绍组件 3.发布--就是拷贝 注意:要拷贝包结构,不要只拷贝组件类文件 另外,拷贝的是.clas ...

  7. JVM的类装载子系统

    在JAVA虚拟机中,负责查找并装载类型的那部分被称为类装载子系统. JAVA虚拟机有两种类装载器:启动类装载器和用户自定义类装载器.前者是JAVA虚拟机实现的一部分,后者则是Java程序的一部分.由不 ...

  8. 2016.6.13 php与MySQL数据库交互之数据库中的商品信息展示

    <table width="550" border="2" align="center" cellpadding="0&qu ...

  9. SU Demo之02Filtering--01Sufilter

    欢迎各位网友批评指正! 今天博文例子位于如下目录: 第一个脚本: 下面是显示结果: 第二个脚本: 运行结果如下: 第三个脚本: 第四个脚本: 第五个脚本: 最后看看sumute命令的说明:

  10. CAD 快捷键Ctrl+2 Ctrl+3

    今天用cad,学习了两个快捷键,第一个Ctrl+2,打开如下 第二个是Ctrl+3,打开如下: