【发布时间】:2022-01-03 21:15:23
【问题描述】:
我正在尝试使用以下 servlet 上传图片 但是上传后我可以保存文件但我无法打开我检查了文件已损坏。
我没有使用注释,而是在 web.xml 中描述了 multipart-config。 在这段代码中,我试图获取使用 AJAX 发送数据的图像文件。 然后我被重定向到注册 servlet,我正在使用 InputStream 类来处理数据。 在此之后,我创建文件并将此 Inputdata 上传到服务器上某个目录中的文件。
public class Register extends HttpServlet{
@Override
protected void doPost(HttpServletRequest req,HttpServletResponse res) throws ServletException,IOException{
String username=req.getParameter("username");
String password=req.getParameter("password");
String email=req.getParameter("email");
Part part = req.getPart("image");
String filename = part.getSubmittedFileName();
InputStream is = req.getInputStream();
byte[] data = new byte[is.available()];
String path = "D:\\FullstackWeb\\images\\icon\\"+filename;
System.out.println(path);
FileOutputStream fos=new FileOutputStream(path);
fos.write(data);
res.setContentType("text/html");
PrintWriter out = res.getWriter();
try {
Class.forName("com.mysql.jdbc.Driver");
Connection conn = DriverManager.getConnection("jdbc:mysql://dns1.nishchay.com:3306/register","demouser","123Nbr@");
String query = "Insert INTO register.signup(username,email,userpassword,filename) values(? ,?, ?,?)";
PreparedStatement pstmt= conn.prepareStatement(query);
pstmt.setString(1, username);
pstmt.setString(2, email);
pstmt.setString(3, password);
pstmt.setString(4, path);
pstmt.executeUpdate();
conn.close();
}catch(Exception e) {
out.println("<h1>Issue is occured</h1>");
}
}
}```
【问题讨论】:
标签: javascript java file servlets corruption