请高手给个案例

解决方案 »

  1.   

    核心代码int maxPostSize = 5 * 1024 * 1024; // file size
    MultipartRequest multirequest = null;
    String prefix = getServletContext().getRealPath("/");
    dirfile = new File(prefix + "UploadFiles");
    if (!dirfile.exists()) {
    dirfile.mkdir();
    }
    multirequest = new MultipartRequest(request, dirfile.toString(),
    maxPostSize, "UTF-8"); // GBK中文编码模式上传文件
    // 获得所有的文件名,返回的是Enumeration
    Enumeration<String> enum1 = multirequest.getFileNames();
    // 循环遍历
    String name = "";
    while (enum1.hasMoreElements()) {
    // 通过文件名获得文件(enum.nextElement()获得在服务器上的文件名)。
    name = (String) enum1.nextElement();// 此时获得是一个文件标识,但不是实际文件名,通过这个文件标识通过getFile(name)方法可以返回上传的后的在服务器端的文件,如下。
    File f = multirequest.getFile(name);
    // 获取老名字后缀,
    filenm = f.getName();
    ext = filenm.substring(filenm.lastIndexOf(".") + 1);
    filenm = filename + "." + ext;
    // 重命名.
    f.renameTo(new File(dirfile.toString() + "\\" + filenm));
    flag = true;
    }