从网上找来Ext.ux.UploadDialog上传文件的例子,但是上传文件后页面显示“上传失败”,而且上传中文文件会出现文件名乱码的现象。请各位大侠帮忙解决一下。谢谢了。 <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" />
<link rel="stylesheet" type="text/css" href="UploadDialog/css/Ext.ux.UploadDialog.css" />
 <script type="text/javascript" src="ext-2.2/adapter/ext/ext-base.js"></script>
 <script type="text/javascript" src="ext-2.2/ext-all.js"></script
 <script type="text/javascript" src="UploadDialog/Ext.ux.UploadDialog.packed.js"></script>
<script>
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,
        title: "文件上传",
        url: 'uploadJSPBack.jsp',
        reset_on_hide: false,
        allow_close_on_upload: true
        });
    dialog.show('show-button');
});
</script>
</head>
<body>
</body>
</html>uploadJSPBack.jsp 
<%@ page language="java" import="java.util.*,java.io.*,org.apache.commons.fileupload.*" pageEncoding="utf-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>  
    <title>My JSP 'uploadJSPBack.jsp' starting page</title>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    
<%
response.setCharacterEncoding("utf-8");
String uploadPath = "d:\\upload\\";
String tempPath = "d:\\";
try {
         System.out.println("开始进行文件上传");
         DiskFileUpload fu = new DiskFileUpload();
         fu.setSizeMax(4194304); // 设置最大文件尺寸,这里是4MB
         fu.setSizeThreshold(4096); // 设置缓冲区大小,这里是4kb
         fu.setRepositoryPath(tempPath); // 设置临时目录
         List fileItems = fu.parseRequest(request); // 得到所有的文件:
         Iterator i = fileItems.iterator();
         // 依次处理每一个文件:
         while (i.hasNext()) {
            FileItem fi = (FileItem)i.next();
            String fileName = fi.getName();// 获得文件名,这个文件名包括路径:
            System.out.println("name==="+fileName);
            if (fileName != null) {
               // 在这里可以记录用户和文件信息
               // 此处可以定义一个接口(CallBack),用于处理后事。
               // 写入文件a.txt,你也可以从fileName中提取文件名:
               String name = fileName.substring(0,fileName.indexOf("."));
               System.out.println("name==="+name);
               String extfile = fileName.substring(fileName.indexOf("."));
               
               //上传时间作为文件名,用以防止重复上传
               //Timestamp now = new Timestamp((new java.util.Date()).getTime());
               //  SimpleDateFormat   fmt   =   new   SimpleDateFormat("yyyyMMddHHmmssSSS");   
               //    String  pfileName=   fmt.format(now).toString().trim();   
               System.out.println(uploadPath+name+extfile);
               fi.write(new File(uploadPath + name + extfile));
            }
         }           System.out.println("上传成功");
      
            response.setContentType("text/html;charset=utf-8");   
            response.getWriter().print("{success:true,message:'上传成功'}");
         // 跳转到上传成功提示页面
      } catch (Exception e) {
         e.printStackTrace();
         response.getWriter().print("{success:flase,message:'False'}");
         // 可以跳转出错页面
      }
 %>
  </head>
  
  <body>
    This is my JSP page. <br>
  </body>
</html>

解决方案 »

  1.   


     我觉得应该是 JSON 返回值的问题。
      

  2.   

    看看我的例子吧,解决中文乱码问题,上传多文件:http://download.csdn.net/user/wula0010
      

  3.   

     我的问题是被打包在jar里面了 完全找不到ext的上传在哪里实现的啊
      

  4.   

    你好,我已经做好了,我们qq上聊,因为我这边也有一点问题,虽然解决了中文问题,但是在上传框中的状态信息一直没有显示,那一列不知道为什么,qq交流一下。593554097