图片上传失败!!!

赖村网

HTTP Status 500 – Internal Server Error

Type Exception Report


Message java.io.FileNotFoundException: /www/server/apache-tomcat-8.5.32/webapps/ROOT/upload/letter1.jpg (Permission denied)


Description The server encountered an unexpected condition that prevented it from fulfilling the request.


Exception


java.io.IOException: java.io.FileNotFoundException: /www/server/apache-tomcat-8.5.32/webapps/ROOT/upload/letter1.jpg (Permission denied)

www.UploadServlet.doPost(UploadServlet.java:57)

javax.servlet.http.HttpServlet.service(HttpServlet.java:661)

javax.servlet.http.HttpServlet.service(HttpServlet.java:742)

org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)

Root Cause


java.io.FileNotFoundException: /www/server/apache-tomcat-8.5.32/webapps/ROOT/upload/letter1.jpg (Permission denied)

java.io.FileOutputStream.open0(Native Method)

java.io.FileOutputStream.open(FileOutputStream.java:270)

java.io.FileOutputStream.(FileOutputStream.java:213)

java.io.FileOutputStream.(FileOutputStream.java:162)

org.apache.tomcat.util.http.fileupload.disk.DiskFileItem.write(DiskFileItem.java:400)

www.UploadServlet.doPost(UploadServlet.java:57)

javax.servlet.http.HttpServlet.service(HttpServlet.java:661)

javax.servlet.http.HttpServlet.service(HttpServlet.java:742)

org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)

Note The full stack trace of the root cause is available in the server logs.


Apache Tomcat/8.5.32

主 楼 发布于:2019-06-02 12:45:31回复
赖村网

package www;


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;


import org.apache.catalina.core.ApplicationPart;


/**

* Servlet implementation class UploadServlet

*/

@WebServlet("/UploadServlet")

@MultipartConfig( maxFileSize = 10*1024*1024)

public class UploadServlet extends HttpServlet {

private static final long serialVersionUID = 1L;

/**

* @see HttpServlet#HttpServlet()

*/

public UploadServlet() {

super();

// TODO Auto-generated constructor stub

}


/**

* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)

*/

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

// TODO Auto-generated method stub

}


/**

* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)

*/

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

// TODO Auto-generated method stub

doGet(request, response);

response.setContentType("text/html");

response.setCharacterEncoding("utf-8");

request.setCharacterEncoding("utf-8");

PrintWriter out=response.getWriter();

String path=this.getServletContext().getRealPath("/");//获取服务器地址

Part p=request.getPart("file1");//获取用户选择的上传图片

if(p.getContentType().contains("image")){//仅处理图像文件

ApplicationPart ap=(ApplicationPart)p;

String fname1=ap.getSubmittedFileName();//获取上传文件名

int path_idx=fname1.lastIndexOf("\\")+1; //对上传文件名进行截取

String fname2=fname1.substring(path_idx, fname1.length());

p.write(path+"/upload/"+fname2); //写入web目录根路径下的upload文件夹中

out.write("文件上传成功"+path);

}else {

out.write("请选择图片文件!!!!!!");

}

}


}

2 楼 发布于:2019-06-02 12:49:44
回复
赖村网

57行

p.write(path+"/upload/"+fname2); //写入web目录根路径下的upload文件夹中

3 楼 发布于:2019-06-02 12:50:35
回复
旅行者

看得好费劲啊,请使用添加代码功能:

4 楼 发布于:2019-06-02 15:19:29
回复
赖村网

5 楼 发布于:2019-06-02 16:22:54
回复
赖村网


package www;



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;



import org.apache.catalina.core.ApplicationPart;



/**


* Servlet implementation class UploadServlet


*/


@WebServlet("/UploadServlet")


@MultipartConfig( maxFileSize = 10*1024*1024)


public class UploadServlet extends HttpServlet {


private static final long serialVersionUID = 1L;


/**


* @see HttpServlet#HttpServlet()


*/


public UploadServlet() {


super();


// TODO Auto-generated constructor stub


}



/**


* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)


*/


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


// TODO Auto-generated method stub


}



/**


* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)


*/


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


// TODO Auto-generated method stub


doGet(request, response);


response.setContentType("text/html");


response.setCharacterEncoding("utf-8");


request.setCharacterEncoding("utf-8");


PrintWriter out=response.getWriter();


String path=this.getServletContext().getRealPath("/");//获取服务器地址


Part p=request.getPart("file1");//获取用户选择的上传图片


if(p.getContentType().contains("image")){//仅处理图像文件


ApplicationPart ap=(ApplicationPart)p;


String fname1=ap.getSubmittedFileName();//获取上传文件名


int path_idx=fname1.lastIndexOf("\\")+1; //对上传文件名进行截取


String fname2=fname1.substring(path_idx, fname1.length());


p.write(path+"/upload/"+fname2); //写入web目录根路径下的upload文件夹中


out.write("文件上传成功"+path);


}else {


out.write("请选择图片文件!!!!!!");


}


}



}

6 楼 发布于:2019-06-02 16:27:15
回复
旅行者

这个就不知道了,我用 commons fileupload库,处理的方式有点不同

7 楼 发布于:2019-06-02 22:04:28
回复
广雷躞

我要是妞,早爱上我了……

8 楼 发布于:2023-05-28 05:13:41
回复
振翰服饰专营店

有个朋友告诉我,天快亮时,天使会一起祭拜天主如果这时点起烟火就会吸引他们,许的愿就特别容易实现.

9 楼 发布于:2024-01-11 07:52:21
回复
泛滥君

你快乐、我快乐、大家快乐,快乐圣诞节。哦!我的圣诞礼物呢?快找找!哦!收到了吧?我带给你的是——快乐!

10 楼 发布于:2025-02-13 21:29:07
回复

发表回复: