class="tags" href="/tags/JSF.html" title=jsf>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="class="tags" href="/tags/UPLOAD.html" title=upload>uploadedFileNum"
id="class="tags" href="/tags/UPLOAD.html" title=upload>uploadedFileNum" />
<h:panelGroup id="class="tags" href="/tags/UPLOAD.html" title=upload>uploadedFilePanel">
<x:inputFileUpload value="#{projectBean.class="tags" href="/tags/UPLOAD.html" title=upload>uploadedFile[0]}"
id="class="tags" href="/tags/UPLOAD.html" title=upload>uploadedFile0" storage="class="tags" href="/tags/FILE.html" title=file>file" />
<x:inputFileUpload value="#{projectBean.class="tags" href="/tags/UPLOAD.html" title=upload>uploadedFile[1]}"
id="class="tags" href="/tags/UPLOAD.html" title=upload>uploadedFile1" storage="class="tags" href="/tags/FILE.html" title=file>file" rendered="false" />
<x:inputFileUpload value="#{projectBean.class="tags" href="/tags/UPLOAD.html" title=upload>uploadedFile[2]}"
id="class="tags" href="/tags/UPLOAD.html" title=upload>uploadedFile2" storage="class="tags" href="/tags/FILE.html" title=file>file" rendered="false" />
<x:inputFileUpload value="#{projectBean.class="tags" href="/tags/UPLOAD.html" title=upload>uploadedFile[3]}"
id="class="tags" href="/tags/UPLOAD.html" title=upload>uploadedFile3" storage="class="tags" href="/tags/FILE.html" title=file>file" rendered="false" />
<x:inputFileUpload value="#{projectBean.class="tags" href="/tags/UPLOAD.html" title=upload>uploadedFile[4]}"
id="class="tags" href="/tags/UPLOAD.html" title=upload>uploadedFile4" storage="class="tags" href="/tags/FILE.html" title=file>file" rendered="false" />
<x:inputFileUpload value="#{projectBean.class="tags" href="/tags/UPLOAD.html" title=upload>uploadedFile[5]}"
id="class="tags" href="/tags/UPLOAD.html" title=upload>uploadedFile5" storage="class="tags" href="/tags/FILE.html" title=file>file" rendered="false" />
<x:inputFileUpload value="#{projectBean.class="tags" href="/tags/UPLOAD.html" title=upload>uploadedFile[6]}"
id="class="tags" href="/tags/UPLOAD.html" title=upload>uploadedFile6" storage="class="tags" href="/tags/FILE.html" title=file>file" rendered="false" />
<x:inputFileUpload value="#{projectBean.class="tags" href="/tags/UPLOAD.html" title=upload>uploadedFile[7]}"
id="class="tags" href="/tags/UPLOAD.html" title=upload>uploadedFile7" storage="class="tags" href="/tags/FILE.html" title=file>file" rendered="false" />
<x:inputFileUpload value="#{projectBean.class="tags" href="/tags/UPLOAD.html" title=upload>uploadedFile[8]}"
id="class="tags" href="/tags/UPLOAD.html" title=upload>uploadedFile8" storage="class="tags" href="/tags/FILE.html" title=file>file" rendered="false" />
<x:inputFileUpload value="#{projectBean.class="tags" href="/tags/UPLOAD.html" title=upload>uploadedFile[9]}"
id="class="tags" href="/tags/UPLOAD.html" title=upload>uploadedFile9" storage="class="tags" href="/tags/FILE.html" title=file>file" rendered="false" />
</h:panelGroup>
<a4j:commandLink value="添加上传文件"
action="#{projectBean.addUploadedFilePanel}"
οnclick="document.getElementById('class="tags" href="/tags/UPLOAD.html" title=upload>uploadedFileNum').value=parseInt(document.getElementById('class="tags" href="/tags/UPLOAD.html" title=upload>uploadedFileNum').value)+1;"
reRender="class="tags" href="/tags/UPLOAD.html" title=upload>uploadedFilePanel">
</a4j:commandLink>
</a4j:region>
ProjectBean中
/**
* AjAX处理
*/
public void addUploadedFilePanel() {
UIComponent panel = FacesContext.getCurrentInstance().getViewRoot()
.findComponent("createForm:class="tags" href="/tags/UPLOAD.html" title=upload>uploadedFilePanel");
String class="tags" href="/tags/UPLOAD.html" title=upload>uploadedFileNum = (String) FacesUtils
.getRequestParameter("class="tags" href="/tags/UPLOAD.html" title=upload>uploadedFileNum");
panel.findComponent("class="tags" href="/tags/UPLOAD.html" title=upload>uploadedFile" + class="tags" href="/tags/UPLOAD.html" title=upload>uploadedFileNum).setRendered(true);
}
private UploadedFile[] class="tags" href="/tags/UPLOAD.html" title=upload>uploadedFile;
/**
* 上传的文件
*/
public UploadedFile[] getUploadedFile() {
String class="tags" href="/tags/UPLOAD.html" title=upload>uploadedFileNum = (String) FacesUtils
.getRequestParameter("class="tags" href="/tags/UPLOAD.html" title=upload>uploadedFileNum");
if (class="tags" href="/tags/UPLOAD.html" title=upload>uploadedFile == class="tags" href="/tags/NULL.html" title=null>null) {
if (class="tags" href="/tags/UPLOAD.html" title=upload>uploadedFileNum != class="tags" href="/tags/NULL.html" title=null>null && !class="tags" href="/tags/UPLOAD.html" title=upload>uploadedFileNum.equals("")) {
class="tags" href="/tags/UPLOAD.html" title=upload>uploadedFile = new UploadedFile[Integer.parseInt(class="tags" href="/tags/UPLOAD.html" title=upload>uploadedFileNum) + 1];
} else {
class="tags" href="/tags/UPLOAD.html" title=upload>uploadedFile = new UploadedFile[1];
}
}
return class="tags" href="/tags/UPLOAD.html" title=upload>uploadedFile;
}
//上传文件
public void upLoad() throws IOException {
if (class="tags" href="/tags/UPLOAD.html" title=upload>uploadedFile.length != 0) {
String class="tags" href="/tags/UPLOAD.html" title=upload>uploadDir = FacesUtils.getServletContext().getRealPath(
"//class="tags" href="/tags/UPLOAD.html" title=upload>upload//applyProject//");
class="tags" href="/tags/UPLOAD.html" title=upload>uploadDir += "//" + FacesUtils.getCurrentUserName() + "//";
FileUntils class="tags" href="/tags/FILE.html" title=file>fileUntils = new FileUntils();
class="tags" href="/tags/FILE.html" title=file>fileUntils.createFolder(class="tags" href="/tags/UPLOAD.html" title=upload>uploadDir);
Attachment[] attachment = new Attachment[class="tags" href="/tags/UPLOAD.html" title=upload>uploadedFile.length];
for (int i = 0; i < class="tags" href="/tags/UPLOAD.html" title=upload>uploadedFile.length; i++) {
if (class="tags" href="/tags/UPLOAD.html" title=upload>uploadedFile[i]!= class="tags" href="/tags/NULL.html" title=null>null) {
File tempUploadFile = new File(class="tags" href="/tags/UPLOAD.html" title=upload>uploadedFile[i].getName());
String class="tags" href="/tags/FILE.html" title=file>fileName = tempUploadFile.getName();
int length = (int) tempUploadFile.length();
String completePath = class="tags" href="/tags/UPLOAD.html" title=upload>uploadDir + "//"
+ UniqueStringGenerator.getUniqueString();
class="tags" href="/tags/FILE.html" title=file>fileUntils.createFolder(completePath);
String floder = completePath;
completePath = completePath + "//" + class="tags" href="/tags/FILE.html" title=file>fileName;
class="tags" href="/tags/FILE.html" title=file>fileUntils.createFile(class="tags" href="/tags/UPLOAD.html" title=upload>uploadedFile[i].getInputStream(),
completePath);
attachment[i] = new Attachment();
attachment[i].setFileName(class="tags" href="/tags/FILE.html" title=file>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[] class="tags" href="/tags/UPLOAD.html" title=upload>uploadedFile) {
this.class="tags" href="/tags/UPLOAD.html" title=upload>uploadedFile = class="tags" href="/tags/UPLOAD.html" title=upload>uploadedFile;
}
不有确定按钮的add {class="tags" href="/tags/UPLOAD.html" title=upload>upload()...}
Project与attach一对多的关系。