jsf和myface上传文件

 jsf和myface上传文件
气死我了


<%@ taglib uri="http://myfaces.apache.org/tomahawk" prefix="x"%>
 <h:form id="createForm" enctype="multipart/form-data">
<td class="tdbg4" width="100">
       上传附件:
      </td>
      <td class="tdbg5" width="400" colspan="3">

       <a4j:region>
        <input type=hidden" value="0" name="uploadedFileNum"
         id="uploadedFileNum" />
        <h:panelGroup id="uploadedFilePanel">
         <x:inputFileUpload value="#{projectBean.uploadedFile[0]}"
          id="uploadedFile0" storage="file" />
         <x:inputFileUpload value="#{projectBean.uploadedFile[1]}"
          id="uploadedFile1" storage="file" rendered="false" />
         <x:inputFileUpload value="#{projectBean.uploadedFile[2]}"
          id="uploadedFile2" storage="file" rendered="false" />
         <x:inputFileUpload value="#{projectBean.uploadedFile[3]}"
          id="uploadedFile3" storage="file" rendered="false" />
         <x:inputFileUpload value="#{projectBean.uploadedFile[4]}"
          id="uploadedFile4" storage="file" rendered="false" />
         <x:inputFileUpload value="#{projectBean.uploadedFile[5]}"
          id="uploadedFile5" storage="file" rendered="false" />
         <x:inputFileUpload value="#{projectBean.uploadedFile[6]}"
          id="uploadedFile6" storage="file" rendered="false" />
         <x:inputFileUpload value="#{projectBean.uploadedFile[7]}"
          id="uploadedFile7" storage="file" rendered="false" />
         <x:inputFileUpload value="#{projectBean.uploadedFile[8]}"
          id="uploadedFile8" storage="file" rendered="false" />
         <x:inputFileUpload value="#{projectBean.uploadedFile[9]}"
          id="uploadedFile9" storage="file" rendered="false" />
        </h:panelGroup>
        <a4j:commandLink value="添加上传文件"
         action="#{projectBean.addUploadedFilePanel}"
         οnclick="document.getElementById('uploadedFileNum').value=parseInt(document.getElementById('uploadedFileNum').value)+1;"
         reRender="uploadedFilePanel">
        </a4j:commandLink>
       </a4j:region>

 

ProjectBean中
 /**
  * AjAX处理
  */
 public void addUploadedFilePanel() {
  UIComponent panel = FacesContext.getCurrentInstance().getViewRoot()
    .findComponent("createForm:uploadedFilePanel");
  String uploadedFileNum = (String) FacesUtils
    .getRequestParameter("uploadedFileNum");
  panel.findComponent("uploadedFile" + uploadedFileNum).setRendered(true);
 }

 private UploadedFile[] uploadedFile;

 /**
  * 上传的文件
  */
 public UploadedFile[] getUploadedFile() {
  String uploadedFileNum = (String) FacesUtils
    .getRequestParameter("uploadedFileNum");
  if (uploadedFile == null) {
   if (uploadedFileNum != null && !uploadedFileNum.equals("")) {
    uploadedFile = new UploadedFile[Integer.parseInt(uploadedFileNum) + 1];
   } else {
    uploadedFile = new UploadedFile[1];
   }
  }
  return uploadedFile;
 }
//上传文件
 public void upLoad() throws IOException {
  if (uploadedFile.length != 0) {
   String uploadDir = FacesUtils.getServletContext().getRealPath(
     "//upload//applyProject//");
   uploadDir += "//" + FacesUtils.getCurrentUserName() + "//";
   FileUntils fileUntils = new FileUntils();
   fileUntils.createFolder(uploadDir);
   Attachment[] attachment = new Attachment[uploadedFile.length];
   for (int i = 0; i < uploadedFile.length; i++) {
    if (uploadedFile[i]!= null) {
     File tempUploadFile = new File(uploadedFile[i].getName());

     String fileName = tempUploadFile.getName();
     int length = (int) tempUploadFile.length();

     String completePath = uploadDir + "//"
       + UniqueStringGenerator.getUniqueString();
     fileUntils.createFolder(completePath);
     String floder = completePath;
     completePath = completePath + "//" + fileName;
     fileUntils.createFile(uploadedFile[i].getInputStream(),
       completePath);
     attachment[i] = new Attachment();
     attachment[i].setFileName(fileName);
     attachment[i].setFileSize(length);
     attachment[i].setPath(completePath);
     attachment[i].setFloder(floder);
     attachment[i].setProject(project);
     project.getAttachments().add(attachment[i]);
    }
   }
  }

 }

 public void setUploadedFile(UploadedFile[] uploadedFile) {
  this.uploadedFile = uploadedFile;
 }

 

 

不有确定按钮的add {upload()...}

Project与attach一对多的关系。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值