Java 如何使用servlet在数据库中添加默认照片?

Java 如何使用servlet在数据库中添加默认照片?,java,mysql,jsp,servlets,file-upload,Java,Mysql,Jsp,Servlets,File Upload,如果用户没有手动上传任何照片,如何在数据库中添加默认照片 我正在使用此代码处理用户上传的照片: InputStream inputStream = null; // obtains the upload file part in this multipart request Part filePart = request.getPart("photo"); if (filePart != null) { // prints out some information for debug

如果用户没有手动上传任何照片,如何在数据库中添加默认照片

我正在使用此代码处理用户上传的照片:

InputStream inputStream = null;

// obtains the upload file part in this multipart request
Part filePart = request.getPart("photo");

if (filePart != null) {
    // prints out some information for debugging
    System.out.println(filePart.getName());
    System.out.println(filePart.getSize());
    System.out.println(filePart.getContentType());

    // obtains input stream of the upload file
    inputStream = filePart.getInputStream();
}

try
{
    Class.forName("com.mysql.jdbc.Driver");
    Connection con=DriverManager.getConnection("jdbc:mysql://localhost:3306/busbooking","user","password");
    PreparedStatement ps=con.prepareStatement("INSERT INTO `busbooking`.`users` (`username`, `Full_name`, `email`, `password`, `Mob_no`, `DOB`, `address`, `Gender`, `Usertype`, `Agency_name`, `Photo`) VALUES (?,?,?,?,?,?,?,?,?,?,?)");
    ps.setString(1, username);
    ps.setString(2, FullName);
    ps.setString(3, email);
    ps.setString(4, passwd);
    ps.setString(5, mobile);
    ps.setString(6, dob);
    ps.setString(7, address);
    ps.setString(8, gender);
    ps.setString(9, Usertype);
    ps.setString(10, AgencyName);
    if (inputStream != null) {
        // fetches input stream of the upload file for the blob column
        ps.setBlob(11, inputStream);
    }
    ps.executeUpdate();   

    out.println("<script>alert('Registration Successful');</script>");
    RequestDispatcher rd=request.getRequestDispatcher("LoginPage1.jsp");
    rd.include(request, response);

    ps.close();
    con.close();
}
InputStream InputStream=null;
//获取此多部分请求中的上载文件部分
partfilepart=request.getPart(“照片”);
if(filePart!=null){
//打印一些用于调试的信息
System.out.println(filePart.getName());
System.out.println(filePart.getSize());
System.out.println(filePart.getContentType());
//获取上载文件的输入流
inputStream=filePart.getInputStream();
}
尝试
{
Class.forName(“com.mysql.jdbc.Driver”);
Connection con=DriverManager.getConnection(“jdbc:mysql://localhost:3306/busbooking“,”用户“,”密码“);
PreparedStatement ps=con.prepareStatement(“插入'busbooking'。'users'('username','Full'u name','email','password','Mob'u no','DOB','address','Sexy','Usertype','Agency'u name','Photo中)值(?,,,,,,,,,,,,,,,,)”;
ps.setString(1,用户名);
ps.setString(2,全名);
ps.setString(3,电子邮件);
ps.setString(4,passwd);
ps.setString(5,移动式);
ps.setString(6,dob);
ps.setString(7,地址);
ps.setString(8,性别);
ps.setString(9,用户类型);
ps.setString(10,机构名称);
如果(inputStream!=null){
//获取blob列的上载文件的输入流
ps.setBlob(11,输入流);
}
ps.executeUpdate();
out.println(“警报(“注册成功”);”;
RequestDispatcher rd=request.getRequestDispatcher(“LoginPage1.jsp”);
包括(请求、响应);
ps.close();
con.close();
}

您可以在数据库表中为照片列设置默认图像,或者如果用户未上载图像,则可以使用以下命令从服务器上的某个默认图像照片创建输入流:

  File initialFile = new File("src/main/resources/sample.txt");
  InputStream targetStream = new FileInputStream(initialFile);
示例来源:

尽管在MySql Blob列中不能有默认值。所以这不是你的选择。你能用你已经尝试过的方法发布代码吗?欢迎使用堆栈溢出!我编辑了你的问题,使它更简单,更容易理解。我还对您的代码进行了一些格式化,以使其看起来更好一些,但它应该更加简化,以便快速且易于喘息。您可以从中删除不重要的行,例如对
ps.setString
的调用,以便其他人可以关注基本部分。祝你好运