【问题标题】:The server encountered an internal error () that prevented it from fulfilling the multiple file upload request服务器遇到内部错误 () 阻止它完成多文件上传请求
【发布时间】:2017-01-18 09:17:50
【问题描述】:

谁能帮忙解决错误?尝试在服务器文件夹中上传多个文件,文件名在数据库中,但服务器抛出以下错误 -

HTTP 状态 500

输入异常报告

消息

描述服务器遇到一个内部错误()阻止 它无法满足此请求。

异常

java.io.IOException: java.io.FileNotFoundException: F:\eworkspace.metadata.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps\UploadServlet30\uploadFiles (访问被拒绝) net.codejava.servlet.UploadServlet.doPost(UploadServlet.java:53) javax.servlet.http.HttpServlet.service(HttpServlet.java:641) javax.servlet.http.HttpServlet.service(HttpServlet.java:722) 根 原因

java.io.FileNotFoundException: F:\eworkspace.metadata.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps\UploadServlet30\uploadFiles (访问被拒绝) java.io.FileOutputStream.open(Native Method) java.io.FileOutputStream.(未知来源) java.io.FileOutputStream.(未知来源) org.apache.tomcat.util.http.fileupload.disk.DiskFileItem.write(DiskFileItem.java:425) net.codejava.servlet.UploadServlet.doPost(UploadServlet.java:53) javax.servlet.http.HttpServlet.service(HttpServlet.java:641) javax.servlet.http.HttpServlet.service(HttpServlet.java:722)

控制器类

protected void doPost(HttpServletRequest request,
        HttpServletResponse response) throws ServletException, IOException {


    News news = new News();

    // 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 + UPLOAD_DIR;

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

    for (Part part : request.getParts()) {
        System.out.println("partttttttttt"+part.getName());
        String fileName = extractFileName(part);
        System.out.println("fle Name-----"+fileName);
        // refines the fileName in case it is an absolute path
        fileName = new File(fileName).getName();
        System.out.println("fle Name-----"+fileName);           
        part.write(savePath + File.separator + fileName);
        news.setFileName(fileName);
    }

    news.setNewsTitle(request.getParameter("newsTitle"));
    news.setNewsDesc(request.getParameter("newsDesc"));


    String newsId = request.getParameter("newsId");

    if(newsId == null || newsId.isEmpty())
    {
        dao.addNews(news);
    }
    else
    {
        news.setNewsId(Integer.parseInt(newsId));
        dao.updateNews(news);
    }
    RequestDispatcher view = request.getRequestDispatcher(LIST_NEWS);
    request.setAttribute("newsList", dao.getAllNews());
    view.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 "";
}

public void addNews(News news) {
    String insertQuery = "INSERT INTO NEWSMASTER(NEWSID, NEWSTITLE, NEWSDESC,FILENAME) VALUES (?,?,?,?)";
    try {
        pStmt = dbConnection.prepareStatement(insertQuery);
        pStmt.setInt(1, news.getNewsId());
        pStmt.setString(2, news.getNewsTitle());
        pStmt.setString(3, news.getNewsDesc());
        pStmt.setString(4, news.getFileName());
        pStmt.executeUpdate();
    } catch (SQLException e) {
        System.err.println(e.getMessage());
    }
}

模型类

public String getFileName() {
    return fileName;
}
public void setFileName(String fileName) {
    this.fileName = fileName;
}

【问题讨论】:

    标签: java


    【解决方案1】:

    异常消息显示“访问被拒绝”。所以看来你没有权限读取这个目录或文件。

    【讨论】:

    • 那我该怎么办?
    • 您(或您的管理员)需要设置适当的权限以允许您读取uploadFiles 目录/文件。显然,它是 Eclipse 工作区中的一个目录。所以我建议你设置访问整个工作区的权限。
    猜你喜欢
    • 2016-08-29
    • 1970-01-01
    • 2020-09-26
    • 1970-01-01
    • 2015-03-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多