首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > Java Web开发 >

用ext实现上传文件的源代码,该怎么处理

2012-04-26 
用ext实现上传文件的源代码求:用ext+spring实现的图片上传的源代码跟这边发表提问事,点击“点击上传附件”时

用ext实现上传文件的源代码
求:
用ext+spring实现的图片上传的源代码
跟这边发表提问事,点击“点击上传附件”时出现的对话框一样的效果

[解决办法]
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
}

}
 

[解决办法]
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;
}
}

[解决办法]
顶一下

热点排行