文件没有通过servlet上传

时间:2015-08-16 13:14:11

标签: java servlets

我在下面有一个servlet程序,用于上传文件并将其保存到Web位置路径。我在使用Glassfish Server的Ne​​tBeans中运行程序。但是,当我接受客户输入时,它会给我异常

  

java.io.FileNotFoundException:C:\ Users \ 422405 \ personal_domain \ generated \ jsp \ HelloWorld \ tmp \ C:\ Users \ 422405 \ Desktop \ Mohit_prac \ HelloWorld \ build \ web \ uploadFiles \ sas.txt(The文件名,目录名或卷标语法不正确)

以下是代码:

import java.io.File;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.annotation.MultipartConfig;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.Part;

@WebServlet("/upl")
@MultipartConfig(location="/tmp",fileSizeThreshold=1024*1024*2, // 2MB
      maxFileSize=1024*1024*10,      // 10MB
                maxRequestSize=1024*1024*50
               )   // 50MB
public class upl extends HttpServlet {

    /**
     * Name of the directory where uploaded files will be saved, relative to
     * the web application directory.
     */
    private static final String SAVE_DIR = "uploadFiles";

    /**
     * handles file upload
     */
    protected void doPost(HttpServletRequest request,
            HttpServletResponse response) throws ServletException, IOException {

        response.setContentType("text/html;charset=UTF-8");
        PrintWriter out = response.getWriter();

// gets absolute path of the web application
        String appPath = request.getServletContext().getRealPath("");
        // constructs path of the directory to save uploaded file
        String savePath = appPath+ File.separator + SAVE_DIR;



        // creates the save directory if it does not exists
        File fileSaveDir = new File(savePath);
        if (!fileSaveDir.exists()) {
            fileSaveDir.mkdir();
             out.println("hisucess");
        }


          Part part=request.getPart("file");

          out.println("hi"+part);
          out.println("initial_star"+appPath);
           out.println("koooooo"+savePath);
          String fileName=extractFileName(part);
           out.println("nameeeeeeeeeeeeeeee"+fileName);

          part.write(savePath + File.separator + "sas.txt");

       // for (Part part : request.getParts()) {
        //    String fileName = extractFileName(part);
         ///   part.write(savePath + File.separator + fileName);
      //  }

        //request.setAttribute("message", "Upload has been done successfully!");
       // getServletContext().getRequestDispatcher("/message.jsp").forward(
      //          request, response);
    }

    /**
     * Extracts file name from HTTP header content-disposition
     */


       private String extractFileName(Part part) {

        String contentDisp = part.getHeader("content-disposition");

        String[] items = contentDisp.split(";");
        for (String s : items) {
            if (s.trim().startsWith("filename")) {
                return s.substring(s.indexOf("=") + 2, s.length()-1);
            }
        }
        return "";
    }


}

0 个答案:

没有答案