2017-01-12 4 views
-1

ユーザーが手動で写真をアップロードしていない場合、データベースに既定の写真を追加するにはどうすればよいですか?サーブレットを使用してデータベースにデフォルト写真を追加するには?

私はユーザーがアップロードした写真を処理するために、このコードを使用しています:

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(); 
} 
+0

ようこそスタックオーバーフロー!あなたの質問を編集して、理解しやすくしました。私はまた、あなたのコードにいくつかのフォーマットを行って、少し上手く見えるようにしましたが、すばやく簡単に気をつけるように単純化する必要があります。他の人が本質的な部分に集中できるように、 'ps.setString'の呼び出しのように、重要でない行を削除することができます。がんばろう! –

答えて

0

あなたの写真列またはユーザーが画像をアップロードしない場合は、データベース・テーブルにデフォルトのイメージを持つことができるのいずれか、サーバー上のいくつかのデフォルトの画像写真からの入力ストリームを作成して:例の

File initialFile = new File("src/main/resources/sample.txt"); 
    InputStream targetStream = new FileInputStream(initialFile); 

出典: http://www.baeldung.com/convert-file-to-input-stream

+0

MySqlでは、Blob列にはデフォルト値を設定できません。これはあなたのための選択肢ではありません。 – pringi

+0

私のために働いていません –

+0

あなたは正確に何を試してコードを投稿できますか? – pringi

関連する問題