我有一个h:inputText和一个rich:fileUpload。我希望inputText在单击时调用fileUpload。我该怎么做呢?现在,我有这个:
<h:inputText id="uploadName" maxlength="255" value="#{bean.fileName}" required="false"
onclick="INVOKE FILEUPLOAD"
>
</h:inputText>
<rich:fileUpload id="uploadFile" addControlLabel="Upload"
fileUploadListener="#{bean.fileUploadListener}"
uploadData="#{bean.data}"
listWidth="100px" listHeight="0px" maxFilesQuantity="1"
immediateUpload="true" acceptedTypes="xml" allowFlash="false"
status="eventQueueFileUpload">
</rich:fileUpload>
基本上,我希望inputText和fileUpload具有相同的功能,我只需在inputText中显示文件名。
感谢您的帮助
答案 0 :(得分:2)
您无法强制浏览器触发文件上传。你可以做的是使用CSS技巧将文件输入定位在文本输入上并使其透明。然后看起来你有一个输入字段(注意你甚至不需要它作为文本输入;它可以只是<span>
,因为你需要表单来包含参数值文件输入本身无论如何)。
将这项工作用于体面的浏览器并不是一件非常困难的事情,但它对IE来说可能是一个小麻烦。 IE7允许人们输入你可能不想要的文件输入。在任何地方点击输入时,其他所有内容都将启动文件浏览器对话框。