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

解决方案 »

  1.   

    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
    }}
     
      

  2.   

    楼主参考一下:这是EXT+Servlet文件上传
      

  3.   

    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;   
    }   
    }  
      

  4.   

    请楼主把ext+struts上传文件的struts.xml的内容发一下,多谢
      

  5.   

    在ext的 form中有没有上传的控件