要弄一个上传文件的东西,真是困难啊——对我来说。从网上找了很多资料,最后选择了比较成熟的组件进行传递。前台用Ext.ux.UploadDialog组件,后台用cos组件。由于对EXT不熟悉,中间遇到了很多困难,所幸在网上有人帮助——谢谢Ghost_520,最终得以完成。
总结一下:
1.中文文件名乱码的问题:前台jsp页面与后台jsp页面都要统一编码,尤其是需要添加
contentType="text/html; charset=utf-8" pageEncoding="utf-8"
语句,无论是utf-8或是gbk。
2.后台返回到前台的状态语句是
response.getWriter().print("{success:true,message:'上传成功'}");
在UploadDialog组件中解析responseText,并最终生成JSON格式,不过在后台Jsp页面的<body></body>直接不能有语句,否则UploadDialog组件会连同body直接的语句一起解析,则无法得到正确的值。
这是最终的代码
前台JSP
view plaincopy to clipboardprint?
<html>
<head>
<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>上传页面</title>
<link rel="stylesheet" type="text/css" href="ext-2.2/resources/css/ext-all.css" mce_href="ext-2.2/resources/css/ext-all.css" />
<link rel="stylesheet" type="text/css" href="UploadDialog/css/Ext.ux.UploadDialog.css" mce_href="UploadDialog/css/Ext.ux.UploadDialog.css" />
<mce:script type="text/javascript" src="ext-2.2/adapter/ext/ext-base.js" mce_src="ext-2.2/adapter/ext/ext-base.js"></mce:script>
<mce:script type="text/javascript" src="ext-2.2/ext-all.js" mce_src="ext-2.2/ext-all.js"></mce:script>
<mce:script type="text/javascript" src="UploadDialog/Ext.ux.UploadDialog.packed.js" mce_src="UploadDialog/Ext.ux.UploadDialog.packed.js"></mce:script>
<mce:script type="text/javascript"><!--
Ext.onReady(function() {
var dialog = new Ext.ux.UploadDialog.Dialog({
autoCreate: true,
closable: true,
collapsible: false,
draggable: true,
minWidth: 400,
minHeight: 200,
width: 400,
height: 350,
permitted_extensions:['JPG','jpg','jpeg','JPEG','GIF','gif','pdf','txt','jar'],
proxyDrag: true,
resizable: true,
constraintoviewport: true,
url: 'upLoad.jsp',
reset_on_hide: false,
allow_close_on_upload: true
});
dialog.show('show-button');
});
// --></mce:script>
</head>
<body>
</body>
</html>
后台JSP
view plaincopy to clipboardprint?
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%@ page import="java.io.*" %>
<%@ page import="com.oreilly.servlet.*" %>
<%@ page import="com.oreilly.servlet.multipart.*" %>
<%@ page contentType="text/html;charset=utf-8" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>上传后台页面</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<%
//文件上传后,保存在D:\\upload
String saveDirectory = "D:\\upload";
//每个文件最大5m,最多3个,所以总文件大小为(以字节为单位)
int maxPostSize = 3*5*1024*1024;
//保存文件 response的编码为utf-8,
MultipartRequest multi = new MultipartRequest(request,saveDirectory,maxPostSize,"utf-8");
//输出反馈信息
Enumeration files = multi.getFileNames();
while(files.hasMoreElements()){
String name = (String)files.nextElement();
File f = multi.getFile(name);
// if(f!=null){
// String fileName = multi.getFilesystemName(name); 获得文件名
// String lastFileName = saveDirectory+"\\"+fileName; 显示保存路径
// out.println("上传的文件:"+lastFileName);
// out.println("<hr>");
// }
}
System.out.println("上传成功");
response.setContentType("text/html;charset=utf-8");
response.getWriter().print("{success:true,message:'上传成功'}");
%>
</head>
<body>
</body>
</html>
最终结果如图
- 大小: 7.8 KB
分享到:
相关推荐
The class is ready for i18n, override the Ext.ux.UploadDialog.Dialog.prototype.i18n object with your language strings, or just pass i18n object in config. Server side handler. The files in the queue...
Ext.ux.UploadDialog批量上传文件应用,后台采用com.jspsmart.upload.SmartUpload。myeclipse工程,导入即可运行。
ext.ux.uploadDialog实例
EXTjs的上传组件
在做文件上传的时候,发现了Ext.ux.UploadDialog这个强大的东西,实现了一下
NULL 博文链接:https://canfly2010.iteye.com/blog/545673
extjs多选下拉框,Ext.ux.form.LovCombo,extjs 以修复多选下拉框火狐下取不到值的问题,火狐下div不显示背景色的问题
Ext.ux.UploadDialog下载,其中i18n的中文我写了一个js方便大家不想自己写的人调用,路径是:UploadDialog/locale/zh_CN.utf-8.js
Ext.ux.tree.treegrid异步加载,点击节点加载数据
基于Ext Core的包含校验功能的表单提交扩展Ext.ux.submit
1、Ext.ux.aceeditor.Panel 2、Ext.ux.grid.feature.Tileview 3、Ext.ux.upload.Button 4、Ext.ux.toggleslide.ToggleSlide 5、Ext.ux.container.ButtonSegment 6、Ext.ux.grid.plugin.RowEditing 7、Ext.ux.grid....
Ext.ux.UploadDialog extjs上传文件的组件,免费下载
Ext+SwfUpload做的一个多文件上传的插件.
[Ext 3.x + Ext 2.x] 下拉树 Ext.ux.ComboBoxTree
Ext 批量上传附件 组件 。可用 很好 很强大 我已在实际项目中使用过 没有问题。
带复选框的这是经过测试可以用的下拉树
工程文件 博文链接:https://mutongwu.iteye.com/blog/693692