Database 无法在mysql数据库中存储图像。空指针异常 上面是我的html代码。 0) { out.println(“插入成功”); } 其他的 { out.println(“未成功”); } }捕获(例外e){} %>

Database 无法在mysql数据库中存储图像。空指针异常 上面是我的html代码。 0) { out.println(“插入成功”); } 其他的 { out.println(“未成功”); } }捕获(例外e){} %>,database,jsp,blob,Database,Jsp,Blob,这是我的jsp文件,我试图将值图像存储在数据库mysql中。 错误在浏览器显示的“文件图像=新文件(myloc);”行中。 当我打印地址时,只有文件名不是完整地址。 当我把地址放在“File image=new File(“C:\images\1.png”);”中时,它运行正常。 请帮助。您必须添加空检查,至少因为新文件(空)始终抛出NPE,例如: <body> <form name="frm" action="saveImage.jsp" enctype="multipart

这是我的jsp文件,我试图将值图像存储在数据库mysql中。 错误在浏览器显示的“文件图像=新文件(myloc);”行中。 当我打印地址时,只有文件名不是完整地址。 当我把地址放在“File image=new File(“C:\images\1.png”);”中时,它运行正常。
请帮助。

您必须添加空检查,至少因为
新文件(空)始终抛出NPE,例如:

<body>
<form name="frm" action="saveImage.jsp" enctype="multipart/form-data" method="post">
 <input type="file" name="uProperty" /> <br>
 <input type="submit" name="goUpload" value="Upload" />
</form>
</body>

Above is my html code.

<%
Connection conn=null;
PreparedStatement pstmt = null;
ResultSet rs=null;
String url="jdbc:mysql://localhost:3306/amber";
FileInputStream fis=null;

String myloc=request.getParameter("pic"); 
out.print("mylocation="+myloc);
File image= new File(myloc);
out.println(image);

try{
Class.forName("com.mysql.jdbc.Driver").newInstance();
conn=DriverManager.getConnection(url, "root", "sameer0207");


pstmt = conn.prepareStatement("insert into image(image) " + "values(?)");

fis=new FileInputStream(image);

pstmt.setBinaryStream(1,fis, image.length());
int count = pstmt.executeUpdate();
if(count>0)
{
out.println("insert successfully");
}
else
{
out.println("not successfully");
}
}catch(Exception e){}

%>

您需要使用32位的图像存储在数据库中的图像。 要在数据库中存储图像,首先需要将其转换为bit32,然后再存储在数据库中。 同样的过程也适用于数据库中的显示。i、 e.将位32转换为图像并显示

if(myloc != null) {
    File f = new File(myloc);
    if (f.exists()) {
      ...

}

更多关于答案的上下文会有所帮助。bit32要求是否特定于问题中引用的数据库,如果是,原因是什么?这将有助于未来的读者。
String myloc=request.getParameter("pic"); //assumed that  your file object name is "pic" on html page
if (myloc == null) {
  throw new NullPointerException("Source must not be null");  
  if (!Files.exists(myloc)) {
    throw new FileNotFoundException("Source '" + myloc + "' does not exist");
    out.print("mylocation="+myloc);
    File image= new File(myloc);
    out.println(image);
  }