2012-03-19 5 views
-1

イメージをサーブレットに保存する方法は? それをウェブページに戻す方法は?Glassfish/Java/JS:イメージファイルをサーブレットに保存し、Webページに取得します。

このサーブレットは、ファイル入力(image)を使用してJSから要求を受け取ります。 私は写真を保存したいです(おそらくリストに-dbは必要ありません)。そして、サーブレットは彼が受け取ったすべてのものと共に(写真と一緒に)応答を返します。

提案はありますか? 私はこのコードで失敗してみました:

response.setContentType("text/html; charset=UTF-8"); 
    PrintWriter out = response.getWriter(); 

    out.println("</HEAD>\n"); 
    out.println("<BODY>\n" +      
       "<TABLE>\n" + 
       "<TR>\n" + 
       "<TH>--Asked Infos--" + 
       "<TH>--Your Input--"); 

    /*for typical inputs from the form */ 
    Enumeration paramNames = request.getParameterNames();     
    while(paramNames.hasMoreElements()) 
    { 
      String paramName = (String)paramNames.nextElement(); 
      out.println("<TR><TD>" + paramName + "\n<TD>"); 
      String[] paramValues = request.getParameterValues(paramName); 

      String paramValue = paramValues[0]; 
      if (paramValue.length() == 0){ 
       /* .... store a default photo from servlet 'cause user didn't give file...*/ 
      } 
      out.print(paramValue); 

    } 

    /* file input */ 
String fileName = request.getParameter("avatar");/*avatar is the file input name from JS*/  
    FileInputStream fis = new FileInputStream(new File("C:\\"+fileName)); 
    BufferedInputStream bis = new BufferedInputStream(fis); 
    BufferedOutputStream output = new BufferedOutputStream(response.getOutputStream()); 
    for (int data; (data = bis.read()) > -1;) 
    { 
      output.write(data); 
    } 

    out.println("</TABLE>\n</BODY></HTML>"); 

答えて

1

ファイルをアップロードする方法は<input type="file" name="avatar">でフォームを作成しています。サーブレット内で実際にアップロードするには、ApacheまたはSpringアップロードサーブレットフィルタを使用する方がよいでしょう。インターネットでそのコードを検索するには - 良いエクササイズ。


最新JavaEE6支援における支援のためのリンクhere、(ApacheのGeronimoサーバーが、Glassfishのは同じである必要があります)。 JEE6の前には、余分なコードが必要でした。サーブレットフィルタ。

+0

はい、フォームには、あなたが言ったようにが含まれています。私はApacheサーバーのための方法を見つけましたが、私は今Glassfishでそれをやろうとしています。私はインターネットで検索しましたが、ほとんどの例はApache用です。 :/ なにか提案を? – FILIaS

+0

私の答えを延長しました。 –

関連する問題