JSF(MyFaces)でのファイルアップロードしてサーバ上のどっかに保存
マネージドビーンのフィールドにUploadedFile(org.apache.myfaces.custom.fileupload.UploadedFile)を定義。複数のファイルの場合は、その数だけいる。何回もアップロードして複数のファイルをアップロードする場合は、List
保存するメソッドをつくる。
UploadFile upFile とするならば
ファイル名がとれるが、サーバ上に保存するときもとのファイル名はいろいろ使いたくない。が、拡張子は欲しい
String upfileName = upFile.getName(); int num = upfileName.lastIndexOf("."); // 拡張子 String ext = upfileName.substring(num, upfileName.length()); // サーバ上のどっか String fpath = "/hoge/fuga"; File file = new File(fpath + File.separator + "somethingFileName"+ ext); OutputStream out = new FileOutputStream(file); out.write(upFile.getBytes()); out.close();
JSPのほうは、フォームをマルチパートにするのを忘れているとはまるやも。
<h:form enctype="multipart/form-data"> ::: <t:inputFileUpload value="#{myBean.upFile}" />