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
的调用,以便其他人可以关注基本部分。祝你好运