Java 多文件上传

Java 多文件上传,java,extjs,Java,Extjs,我正在尝试使用Extjs和Java上传多个文件,我正在使用“application/x-www-form-urlencoded”内容类型,并从HttpRequest获取所有数据和文件名。我需要上传一些文件。它可以是文档类型或图像类型。 我的问题如下: 1) 在给定静态文件路径时,将成功上载来自该静态位置的所有文件。但是我需要从不同的位置上传多个文件,而不是一个静态位置,所以请尽快帮助我 这是我的文件上传控制器代码 @RequestMapping(value = "views/uploa

我正在尝试使用
Extjs
Java
上传多个文件,我正在使用“application/x-www-form-urlencoded”内容类型,并从
HttpRequest
获取所有数据和文件名。我需要上传一些文件。它可以是文档类型或图像类型。
我的问题如下:

1) 在给定静态文件路径时,将成功上载来自该静态位置的所有文件。但是我需要从不同的位置上传多个文件,而不是一个静态位置,所以请尽快帮助我

这是我的文件上传控制器代码

     @RequestMapping(value = "views/upload.action", method = RequestMethod.POST)
public @ResponseBody
Map<String, Object> create(HttpServletRequest request) throws IOException {
    Map<String, Object> fileUpload = new HashMap();
    boolean success = false;
    Enumeration headerNames = request.getHeaderNames();
    while (headerNames.hasMoreElements()) {
        String headerName = (String) headerNames.nextElement();
        if (headerName.equals("x-file-name")) {
            System.out.println("Header " + headerName);
            System.out.println(request.getHeader(headerName));
            BufferedReader reader = request.getReader();
            StringBuilder sb = new StringBuilder();
            String line = reader.readLine();
            while (line != null) {
                sb.append(line + "\n");
                line = reader.readLine();
            }
            reader.close();
            String data = sb.toString();
            success = copyFile(data, request.getHeader(headerName));
        }
    }
    fileUpload.put("success", success);
    return fileUpload;
}
// open file for input
private boolean openFileInput(File file) {
    try {
        fis = new FileInputStream(file);
        dis = new DataInputStream(new BufferedInputStream(fis));
        return true;
    } catch (FileNotFoundException e) {
        e.printStackTrace();
        LOGGER.error("File Not Found...!");
        return false;
    }
}
// copies file
private boolean copyFile(String fileData, String fileName) {
    File file = new File("C://Documents and Settings/infosoft03/Desktop/"
            + fileName);
    //dis = new DataInputStream(new BufferedInputStream(inputStream));

    // File file = new File(fileName);
    boolean success = false;
    try {
        File dir = new File(PropertyReader.getValue("uploadpath"));
        if (!dir.exists()) {
            dir.mkdir();
        }
        // org.apache.commons.io.FileUtils.writeStringToFile(file,
        // fileData);
        //success = openFileInput(file);
        if (success) {
            success = true;
            fos = new FileOutputStream(
                    PropertyReader.getValue("uploadpath") + fileName);
            dos = new DataOutputStream(new BufferedOutputStream(fos));
            byte[] b = new byte[(int) file.length()];
            System.out.println("file length" + b.length);
            for (int i = 0; i < b.length; i++) {
                b[i] = dis.readByte();
            }
            dos.write(b);
        }
    } catch (IOException e) {
        System.out.println("IOException" + e.getMessage());
        e.printStackTrace();
        return success;
    } finally {
        if (dos != null) {
            closeOutputStream(dos);
        }
        if (fos != null) {
            closeOutputStream(fos);
        }
    }
    return success;
}
@RequestMapping(value=“views/upload.action”,method=RequestMethod.POST)
公共@ResponseBody
映射创建(HttpServletRequest请求)引发IOException{
Map fileUpload=newhashmap();
布尔成功=假;
枚举headerNames=request.getHeaderNames();
while(headerNames.hasMoreElements()){
字符串headerName=(字符串)headerName.nextElement();
if(headerName.equals(“x-file-name”)){
系统输出打印项次(“表头”+表头名称);
System.out.println(request.getHeader(headerName));
BufferedReader reader=request.getReader();
StringBuilder sb=新的StringBuilder();
字符串行=reader.readLine();
while(行!=null){
sb.追加(第+行“\n”);
line=reader.readLine();
}
reader.close();
字符串数据=sb.toString();
success=copyFile(数据,request.getHeader(headerName));
}
}
fileUpload.put(“成功”,success);
返回文件上传;
}
//打开文件进行输入
私有布尔openFileInput(文件){
试一试{
fis=新文件输入流(文件);
dis=新的数据输入流(新的BufferedInputStream(fis));
返回true;
}catch(filenotfounde异常){
e、 printStackTrace();
LOGGER.error(“未找到文件…”);
返回false;
}
}
//复制文件
私有布尔复制文件(字符串文件数据、字符串文件名){
File File=新文件(“C://Documents and Settings/infosoft03/Desktop/”
+文件名);
//dis=新的DataInputStream(新的BufferedInputStream(inputStream));
//文件=新文件(文件名);
布尔成功=假;
试一试{
File dir=新文件(PropertyReader.getValue(“uploadpath”);
如果(!dir.exists()){
dir.mkdir();
}
//org.apache.commons.io.FileUtils.writeStringToFile(文件,
//文件数据);
//成功=openFileInput(文件);
如果(成功){
成功=真实;
fos=新文件输出流(
获取值(“上传路径”)+文件名);
dos=新的数据输出流(新的缓冲输出流(fos));
字节[]b=新字节[(int)file.length()];
System.out.println(“文件长度”+b.length);
for(int i=0;i