[Seasar-user:7878] Re: fileUpload

[E-MAIL ADDRESS DELETED] [E-MAIL ADDRESS DELETED]
2007年 5月 29日 (火) 11:31:53 JST


谷村です。

前野様、ご返答いただきありがとうございます。

> UploadedFile# getInputStream()で送信されたファイルの
> InputStreamを取ってこれるようです。
> 
> そのInputStreamを読み取ってwriteしてあげたらいいかもしれません。

前野様からいただいた上記情報を元に処理がうまくできました。
※下記のような形で実装してみました。

try {
  //path:ファイル格納先絶対パス
  //fileName:ファイル名
  //uploadedFile:アップロードされたファイル
  
  File outFile = new File(path, fileName);
  in = uploadedFile.getInputStream();
  out = new FileOutputStream(outFile.getAbsolutePath());

  byte[] dataByte = new byte[128];
    
  while ((in.read(dataByte)) != -1) {
   out.write(dataByte);
  }

} catch (Exception e) {
  throw e;
}

どうも、ありがとうございました。

"Maeno" <[E-MAIL ADDRESS DELETED]>さんから届いたメールです。
----------ここから----------
> 前野です
> 
> FileUploadとかそこらへんについては無知なんですが・・・。
> 
> UploadedFile# getInputStream()で送信されたファイルの
> InputStreamを取ってこれるようです。
> 
> そのInputStreamを読み取ってwriteしてあげたらいいかもしれません。
> 
> 別の方法として、UploadedFile#getBytes()でバイト配列を取ってきて
> FileOutputStream#write(byte)としてあげれば出来るかもしれないです。
> 
> ※試していないので・・・・スミマセン。
> 
> ----- Original Message ----- 
> From: <[E-MAIL ADDRESS DELETED]>
> To: <[E-MAIL ADDRESS DELETED]>
> Sent: Friday, May 25, 2007 5:30 PM
> Subject: [Seasar-user:7833] fileUpload
> 
> 
> >
> > 谷村と申します。
> > 初めて投稿させていただきます。
> > Seasar初心者ですが、宜しくお願いいたします。
> >
> > Teeda Extensionでファイルアップロードの処理を実装しております。
> > 現状、pageクラスにてアップロード対象のファイル名、
> > ファイルサイズは取得できるのですが、
> > その先の処理「アップロードしたファイルを所定のディレクトリに保存する」
> > 実装方法がわかっておりません。
> >
> > お手数をおかけしますが、ファイルアップロードの実装方法について
> > ご存知の方、ご教授頂けますでしょうか?
> >
> >
> > 現状は下記のように実装しております。
> >
> > ※実装方法としてはSeasarのWebページにある「MyFacesの拡張コンポーネント使用時」 
> > 
> >  を参考にしています。
> > ※Web.xmlに<filter>および、<filter-mapping> 追加済み
> > ※commons-fileupload-1.2.jar、tomahawk-1.1.5.jar 追加済み
> >
> >
> > htmlファイル抜粋
> >
> >  <html xmlns="http://www.w3.org/1999/xhtml"
> >    xmlns:x="http://myfaces.apache.org/tomahawk">
> >  <head>
> >  <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
> >  <title>FileUpload</title>
> >  </head>
> >  <body>
> >  <form id="form" enctype="multipart/form-data">
> >   <span id="allMessage"/>
> >   <x:inputFileUpload id="uploadedFile" value="#{uploadedFile}"/>
> >   <input type="submit" id="doUpload" value="FileUpload"/></form>
> >  </body>
> >  </html>
> >  
> > pageクラス抜粋
> >
> >  public class UploadPage implements Serializable {
> >   
> >   private UploadedFile uploadedFile;
> >   
> >   public UploadedFile getUploadedFile() {
> >    return this.uploadedFile;
> >   }
> >
> >   public void setUploadedFile(UploadedFile uploadedFile) {
> >    this.uploadedFile = uploadedFile;
> >   }
> >
> >   public String doUpload() {
> >
> >    System.out.println("Size:"+uploadedFile.getSize());
> >    System.out.println("Name:"+uploadedFile.getName());
> >    
> >    //★ここから先の実装方法がわかりません★
> >    //★ファイルを所定のディレクトリに保存したい★
> >
> >    return null;
> >   }
> > }
> >
> > 以上、宜しくお願いいたします。
> > _______________________________________________
> > Seasar-user mailing list
> > [E-MAIL ADDRESS DELETED]
> > https://ml.seasar.org/mailman/listinfo/seasar-user 
> 
> _______________________________________________
> Seasar-user mailing list
> [E-MAIL ADDRESS DELETED]
> https://ml.seasar.org/mailman/listinfo/seasar-user
----------ここまで----------



Seasar-user メーリングリストの案内