اواجه مشكلة في تخزين صورة في قاعدة البيانات mysql
لدي قاعدة بيانات على الشكل الاتي
create table test (id int(11) not null, name char(11), age char(11), image blob, primary key (id));
وقمت بانشاء صفحة jsp
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>JSP Page</title>
</head>
<body>
<h1>Hello World!</h1>
<form action="/newupload/yes" method="post" >
Name: <input type="text" name="Name" id ="Name"/><br/>
Age: <input type="text" name="Age" id="Age"/><br/>
Choose the file to upload: <input type="file" name="fileToUpload" id="fileToUpload"/><br/>
<input type="submit"/>
</form>
</body>
</html>وصفحة سرفليت
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.sql.*;
import java.io.*;
/**
*
* @author
*/
public class yes extends HttpServlet {
/**
* Processes requests for both HTTP <code>GET</code> and <code>POST</code> methods.
* @param request servlet request
* @param response servlet response
* @throws ServletException if a servlet-specific error occurs
* @throws IOException if an I/O error occurs
*/
protected void processRequest(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html;charset=UTF-8");
PrintWriter out = response.getWriter();
ResultSet rs = null;
PreparedStatement psmnt = null;
FileInputStream fis;
try {
out.println("<html>");
out.println("<head>");
out.println("<title>Servlet yes</title>");
out.println("</head>");
out.println("<body>");
Class.forName("com.mysql.jdbc.Driver");
Connection c= DriverManager.getConnection("jdbc:mysql://localhost/arabic","root","");
File image = new File(request.getParameter("fileToUpload"));
psmnt = c.prepareStatement("insert into test(name, age, image) values(?,?,?)");
psmnt.setString(1,request.getParameter("Name"));
psmnt.setString(2,request.getParameter("Age"));
//psmnt.setString(3,request.getParameter("fileToUpload"));
fis = new FileInputStream(image);
psmnt.setBinaryStream(3, (InputStream)fis, (int)(image.length()));
int s = psmnt.executeUpdate("insert into test(name, age, image) values(?,?,?)");
if(s>0) {
out.println("Uploaded successfully !");
}
else {
out.println("unsucessfull to upload image.");
}
//Statement f = c.createStatement();
//int res = f.executeUpdate(query);
c.close();
psmnt.close();
out.println("</body>");
out.println("</html>");
}
catch (Exception ex) {
out.println("Found some error : "+ex);
}
finally {
out.close();
}
}
// <editor-fold defaultstate="collapsed" desc="HttpServlet methods. Click on the + sign on the left to edit the code.">
/**
* Handles the HTTP <code>GET</code> method.
* @param request servlet request
* @param response servlet response
* @throws ServletException if a servlet-specific error occurs
* @throws IOException if an I/O error occurs
*/
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
processRequest(request, response);
}
/**
* Handles the HTTP <code>POST</code> method.
* @param request servlet request
* @param response servlet response
* @throws ServletException if a servlet-specific error occurs
* @throws IOException if an I/O error occurs
*/
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
processRequest(request, response);
}
/**
* Returns a short description of the servlet.
* @return a String containing servlet description
*/
@Override
public String getServletInfo() {
return "Short description";
}// </editor-fold>
}ولكن عند التطبيق يكون الناتج
Found some error : java.io.FileNotFoundException: HpP46424.jpg (يتعذر على النظام العثور على الملف المحدد)
هل من مساعدة ؟؟؟؟؟؟؟؟؟؟؟؟