如何在服务器端 读取Ext.ux.UploadDialog上传的文件?

在做文件上传的时候,发现了Ext.ux.UploadDialog这个强大的东西。

不过,不知道如何在服务器端(JAVA环境)读取客户端传过来的文件。请问有人成功实现过吗?

网络上搜索到的例子,无法使用。代码如下:
//
DiskFileItemFactory factory = new DiskFileItemFactory();

ServletFileUpload upload = new ServletFileUpload(factory);

List items = upload.parseRequest(request);//这一句报错。

期待。。。

[b]问题补充:[/b]
DiskFileUpload fu = new DiskFileUpload(); //已经是废弃了的
List fileItems = fu.parseRequest(request); //已经是废弃了的

另外,如果能同时指出客户端属性 url 的值就更明确了。

To:Rowen 谢谢的回复。你的代码运行不了。
[b]问题补充:[/b]
To Rowen:
谢谢你的帮助!
问题已经解决。
1。要导入 commons.io.jar包。
2。upload.js调用 Ext.ux.UploadDialog时候,url属性要包含项目名。
3. DiskFileUpload fu = new DiskFileUpload();

确实已经废弃,建议使用:
DiskFileItemFactory factory = new DiskFileItemFactory();

ServletFileUpload upload = new ServletFileUpload(factory);

[code="java"]import java.io.File;
import java.io.IOException;
import java.util.Iterator;
import java.util.List;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.commons.fileupload.DiskFileUpload;
import org.apache.commons.fileupload.FileItem;
public class UpFileServlet extends HttpServlet {
private String uploadPath="c:\Upfile\"; // 上传文件的目录

private String tempPath="c:\upfiel"; // 临时文件目录

public void doGet(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException {
            doPost(request,response);
}


public void doPost(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException {
    response.setContentType("text/html;charset=UTF-8");
    try {    
        DiskFileUpload fu = new DiskFileUpload();
        // 设置最大文件尺寸,这里是4MB    
        fu.setSizeMax(4194304);    
        // 设置缓冲区大小,这里是4KB    
        fu.setSizeThreshold(4096);    
        // 设置临时目录:    
        fu.setRepositoryPath(tempPath);    

        // 得到所有的文件:    
        List fileItems = fu.parseRequest(request);    
        Iterator i = fileItems.iterator();    
        // 依次处理每一个文件:    
        while(i.hasNext()) {    
            FileItem fi = (FileItem)i.next();    
            // 获得文件名,这个文件名包括路径:    
            String fileName = fi.getName();
            int start=fileName.lastIndexOf("\\");
            //获得上传的文件名
            String paths=fileName.substring(start+1, fileName.length());
            fi.write(new File(uploadPath+paths));   
        }    
        response.getWriter().write("{'success':true,'message':'文件上传成功'}");
    }    
    catch(Exception e) {    
        System.out.println(e.getMessage()+" : "+e.getCause());
        response.getWriter().write("{'success':false,'message':error...'}");
    }    
}


public void init() throws ServletException {
        // 文件夹不存在就自动创建!
        if(!new File(uploadPath).isDirectory())    
            new File(uploadPath).mkdirs();    
        if(!new File(tempPath).isDirectory())    
            new File(tempPath).mkdirs();  
}

}[/code]

[quote]Rowen 谢谢的回复。你的代码运行不了。[/quote]
这是我从Ext.ux.UploadDialog上传的文件的实例中复制出来的。。
具体要你自己掌控。。。
你不会直接ctrl+c and ctrl+v 吧。。 :cry:

发了个EXTJS UploadDialog 多文件上传的实例附件到你站内信箱了。。
你自己有空看看吧。。。