用ext实现上传文件的源代码 求:用ext+spring实现的图片上传的源代码跟这边发表提问事,点击“点击上传附件”时出现的对话框一样的效果 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 DEMO------EXT+Servlet文件上传2007-12-28 11:11做了一个简单的文件上传,测试文本文件通过,图片不能通过.大家修改-----index.jsp-------------<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%><html><head> <script type="text/javascript" src="js/ext/ext-base.js"></script><script type="text/javascript" src="js/ext/ext-all.js"></script><script type="text/javascript" src="js/ext/locale/ext-lang-en.js"></script><link rel="stylesheet" type="text/css" href="js/ext/resources/css/ext-all.css" /><link rel="stylesheet" type="text/css" href="js/ext/resources/css/xtheme-aero.css" /></head><body><script text="text/javascript">Ext.onReady(function(){ Ext.QuickTips.init(); Ext.form.Field.prototype.msgTarget = 'side';var uploadFile = new Ext.form.Form({ url:'<%=request.getContextPath()%>/servlet/UploadServlet', labelAlign: 'null', labelWidth: null, buttonAlign: 'left', fileUpload: true, }); uploadFile.column({width:300, style:null}); uploadFile.add(new Ext.form.TextField({fieldLabel: '选择文件',name: 'myFile',value: '',inputType:'file'})); uploadFile.addButton('确定保存', function() { uploadFile.url = '<%=request.getContextPath()%>/servlet/UploadServlet'; uploadFile.action = '<%=request.getContextPath()%>/servlet/UploadServlet'; if (uploadFile.isValid()) { uploadFile.submit({ params:{action:'submit',flag:'true'}, waitMsg:'Uploading...', method: 'post', success:function(form, action ){Ext.MessageBox.alert('Success!','上传成功!');}, failure:function(form, action ){var data = action.result;Ext.MessageBox.alert('Failed!', '上传失败');}}); } else { Ext.MessageBox.alert('Errors', '表单有错误,请确认后再提交.'); } }, uploadFile); uploadFile.render('grid-example'); });</script><div id="grid-example"></div></body></html>--------------------------servlet--------------------------------package com.zxg.test.servlet;import java.io.BufferedInputStream;import java.io.BufferedOutputStream;import java.io.FileOutputStream;import java.io.IOException;import java.io.PrintWriter;import javax.imageio.stream.ImageOutputStream;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;public class UploadServlet extends HttpServlet {/*** Constructor of the object.*/public UploadServlet() { super();}/*** Destruction of the servlet. <br>*/public void destroy() { super.destroy(); // Just puts "destroy" string in log // Put your code here}public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { BufferedInputStream bis=new BufferedInputStream(request.getInputStream()); BufferedOutputStream bos=new BufferedOutputStream(new FileOutputStream("e:\\test.txt",true)); PrintWriter out=response.getWriter(); if(bis!=null){ int ch; while((ch=bis.read())!=-1) { bos.write(ch); } bis.close(); bos.close(); out.write("上传成功"); } out.write("上传失败");}public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doGet(request, response);}/*** Initialization of the servlet. <br>** @throws ServletException if an error occure*/public void init() throws ServletException { // Put your code here}} 楼主参考一下:这是EXT+Servlet文件上传 Extjs+struts实现文件上传 1.fileUpload.js Java代码 Ext.onReady(function(){ var form = new Ext.form.FormPanel({ renderTo:'file', labelAlign: 'right', title: '文件上传', labelWidth: 60, frame:true, url: '../upload.do?op=uploadFile',//fileUploadServlet width: 300, height:200, fileUpload: true, items: [{ xtype: 'textfield', fieldLabel: '文件名', name: 'file', inputType: 'file'//文件类型 }], buttons: [{ text: '上传', handler: function() { form.getForm().submit({ success: function(form, action){ Ext.Msg.alert('信息', '文件上传成功!'); }, failure: function(){ Ext.Msg.alert('错误', '文件上传失败'); } }); } }] }); }); Ext.onReady(function(){ var form = new Ext.form.FormPanel({ renderTo:'file', labelAlign: 'right', title: '文件上传', labelWidth: 60, frame:true, url: '../upload.do?op=uploadFile',//fileUploadServlet width: 300, height:200, fileUpload: true, items: [{ xtype: 'textfield', fieldLabel: '文件名', name: 'file', inputType: 'file'//文件类型 }], buttons: [{ text: '上传', handler: function() { form.getForm().submit({ success: function(form, action){ Ext.Msg.alert('信息', '文件上传成功!'); }, failure: function(){ Ext.Msg.alert('错误', '文件上传失败'); } }); } }] }); }); 2.uploadAction.java 其中使用了cos上传组件,下载地址:http://www.servlets.com/cos/cos-05Nov2002.zip Java代码 package zx.struts.actions; import java.io.File; import java.util.Enumeration; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.apache.struts.action.ActionForm; import org.apache.struts.action.ActionForward; import org.apache.struts.action.ActionMapping; import com.oreilly.servlet.MultipartRequest; public class UploadAction extends DispatchAction{ public ActionForward uploadFile(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response)throws Exception { String saveDirectory ="F:\\jboss-4.2.2.GA\\server\\default\\deploy\\userDemo.war\\upload"; //文件上传后,保存的位置 int maxPostSize =3 * 5 * 1024 * 1024 ; //每个文件最大5MB,最多3个文件,所以... //response的编码为"gb2312" MultipartRequest multi = new MultipartRequest(request, saveDirectory, maxPostSize, "gb2312"); //输出反馈信息 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; System.out.println("上传的文件:"+lastFileName); } } return null; } } 请楼主把ext+struts上传文件的struts.xml的内容发一下,多谢 在ext的 form中有没有上传的控件 hibernate 报错 纯手写AJAX 怎样才能登陆一个网站后显示登陆信息 el表达式如何正常显示? 隐藏下载路径的问题 请各位大侠帮忙解决一个no start tag问题 JSP页面跳转的问题!!!!!!!!!!! 请教高手,帮我分析一下错误。 开发过程中本地静态资源怎么处理 爬取页面的内容问题 Flex和JavaFX我该选哪一种? tomcat web.xml 中 <param-value>classpath*:spring/*.xml</param-value> classPath*的定义路径是什么
<html>
<head>
<script type="text/javascript" src="js/ext/ext-base.js"></script>
<script type="text/javascript" src="js/ext/ext-all.js"></script>
<script type="text/javascript" src="js/ext/locale/ext-lang-en.js"></script><link rel="stylesheet" type="text/css" href="js/ext/resources/css/ext-all.css" />
<link rel="stylesheet" type="text/css" href="js/ext/resources/css/xtheme-aero.css" /></head>
<body>
<script text="text/javascript">
Ext.onReady(function(){
Ext.QuickTips.init();
Ext.form.Field.prototype.msgTarget = 'side';
var uploadFile = new Ext.form.Form({
url:'<%=request.getContextPath()%>/servlet/UploadServlet',
labelAlign: 'null',
labelWidth: null,
buttonAlign: 'left',
fileUpload: true,
});
uploadFile.column({width:300, style:null});
uploadFile.add(new Ext.form.TextField({fieldLabel: '选择文件',name: 'myFile',value: '',inputType:'file'})); uploadFile.addButton('确定保存', function() {
uploadFile.url = '<%=request.getContextPath()%>/servlet/UploadServlet';
uploadFile.action = '<%=request.getContextPath()%>/servlet/UploadServlet';
if (uploadFile.isValid()) {
uploadFile.submit({
params:{action:'submit',flag:'true'},
waitMsg:'Uploading...',
method: 'post',
success:function(form, action ){Ext.MessageBox.alert('Success!','上传成功!');},
failure:function(form, action ){var data = action.result;Ext.MessageBox.alert('Failed!', '上传失败');}});
}
else {
Ext.MessageBox.alert('Errors', '表单有错误,请确认后再提交.');
}
}, uploadFile);
uploadFile.render('grid-example');
});
</script>
<div id="grid-example"></div>
</body>
</html>
--------------------------servlet--------------------------------package com.zxg.test.servlet;import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.PrintWriter;import javax.imageio.stream.ImageOutputStream;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;public class UploadServlet extends HttpServlet {/**
* Constructor of the object.
*/
public UploadServlet() {
super();
}/**
* Destruction of the servlet. <br>
*/
public void destroy() {
super.destroy(); // Just puts "destroy" string in log
// Put your code here
}public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
BufferedInputStream bis=new BufferedInputStream(request.getInputStream());
BufferedOutputStream bos=new BufferedOutputStream(new FileOutputStream("e:\\test.txt",true));
PrintWriter out=response.getWriter();
if(bis!=null){
int ch;
while((ch=bis.read())!=-1)
{
bos.write(ch);
}
bis.close();
bos.close();
out.write("上传成功");
}
out.write("上传失败");
}public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doGet(request, response);
}/**
* Initialization of the servlet. <br>
*
* @throws ServletException if an error occure
*/
public void init() throws ServletException {
// Put your code here
}}
1.fileUpload.js Java代码
Ext.onReady(function(){
var form = new Ext.form.FormPanel({
renderTo:'file',
labelAlign: 'right',
title: '文件上传',
labelWidth: 60,
frame:true,
url: '../upload.do?op=uploadFile',//fileUploadServlet
width: 300,
height:200,
fileUpload: true,
items: [{
xtype: 'textfield',
fieldLabel: '文件名',
name: 'file',
inputType: 'file'//文件类型
}],
buttons: [{
text: '上传',
handler: function() {
form.getForm().submit({
success: function(form, action){
Ext.Msg.alert('信息', '文件上传成功!');
},
failure: function(){
Ext.Msg.alert('错误', '文件上传失败');
}
});
}
}]
});
}); Ext.onReady(function(){
var form = new Ext.form.FormPanel({
renderTo:'file',
labelAlign: 'right',
title: '文件上传',
labelWidth: 60,
frame:true,
url: '../upload.do?op=uploadFile',//fileUploadServlet
width: 300,
height:200,
fileUpload: true,
items: [{
xtype: 'textfield',
fieldLabel: '文件名',
name: 'file',
inputType: 'file'//文件类型
}],
buttons: [{
text: '上传',
handler: function() {
form.getForm().submit({
success: function(form, action){
Ext.Msg.alert('信息', '文件上传成功!');
},
failure: function(){
Ext.Msg.alert('错误', '文件上传失败');
}
});
}
}]
}); });
2.uploadAction.java 其中使用了cos上传组件,下载地址:http://www.servlets.com/cos/cos-05Nov2002.zip Java代码
package zx.struts.actions;
import java.io.File;
import java.util.Enumeration;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import com.oreilly.servlet.MultipartRequest;
public class UploadAction extends DispatchAction{
public ActionForward uploadFile(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)throws Exception {
String saveDirectory ="F:\\jboss-4.2.2.GA\\server\\default\\deploy\\userDemo.war\\upload"; //文件上传后,保存的位置
int maxPostSize =3 * 5 * 1024 * 1024 ; //每个文件最大5MB,最多3个文件,所以...
//response的编码为"gb2312"
MultipartRequest multi =
new MultipartRequest(request, saveDirectory, maxPostSize,
"gb2312");
//输出反馈信息
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;
System.out.println("上传的文件:"+lastFileName);
}
}
return null;
}
}