大家好,我对java开发还不熟悉,对此我很困惑。我在做一个web应用程序,我的问题是如何导入文件并将其放入i目录。我已经创建了xhtml文件:
<ui:composition xmlns="http://www.w3.org/1999/xhtml"
xmlns:f="http://xmlns.jcp.org/jsf/core"
xmlns:h="http://xmlns.jcp.org/jsf/html"
xmlns:ui="http://xmlns.jcp.org/jsf/facelets"
xmlns:jsf="http://xmlns.jcp.org/jsf"
xmlns:pt="http://xmlns.jcp.org/jsf/passthrough"
xmlns:p="http://primefaces.org/ui"
template="/WEB-INF/template/template.xhtml">
<ui:define name="title">2G</ui:define>
<ui:define name="content">
<h:form>
<h1> <font color="orange" size="7" > 2G</font></h1>
</h:form>
<h2 >Choose 2 files </h2>
<h:form>
<p:fileUpload fileUploadListener="#{import_2G.save()}"
mode="advanced" dragDropSupport="true" update="messages"
sizeLimit="100000000000" allowTypes="/(\.|\/)(xls)$/" />
<p:growl id="messages" showDetail="true" />
</h:form>
</ui:define>
</ui:composition>
这是bean文件:
@ManagedBean
@RequestScoped
public class Import_2G {
public Import_2G() { }
@EJB
private GestionCellRef2GLocal gestionCellRef2GLocal;
private UploadedFile uploadedFile;
public void save() throws IOException {
GestionCellRef2GRemote t = null;
Path folder = Paths.get("C:\\Upload");
String filename = FilenameUtils.getBaseName(uploadedFile.getFileName());
String extension = FilenameUtils.getExtension(uploadedFile.getFileName());
Path file = Files.createTempFile(folder, filename + "-", "." + extension);
if (file != null) {
FacesMessage message = new FacesMessage("Succesful", file.getFileName() + " was uploaded.");
FacesContext.getCurrentInstance().addMessage(null, message);
}
try (InputStream input = uploadedFile.getInputstream()) {
Files.copy(input, folder, StandardCopyOption.REPLACE_EXISTING);
}
}
}
有人帮忙吗?
1条答案
按热度按时间x6492ojm1#
首先开始阅读java中的命名约定。如果你不尊重命名惯例,使用下划线、分数之类的东西,你会有一些麻烦。
第二,你忘了
enctype
. 当您要上载二进制数据时,必须将以下属性:enctype="multipart/form-data
". 让我们建立一个文件上传。首先填写表格:
还有你的后盾:
从形式上看听众;使用
import2G.save
相反import2G.save()
,这是因为FileUpload parameter
在运行时传递给侦听器。