Javascript 隐藏文件上载浏览按钮的文本框
标题可能会使问题看起来更老,但还有一些问题 为了隐藏浏览按钮的文本框,我添加了以下代码Javascript 隐藏文件上载浏览按钮的文本框,javascript,html,css,spring,file-upload,Javascript,Html,Css,Spring,File Upload,标题可能会使问题看起来更老,但还有一些问题 为了隐藏浏览按钮的文本框,我添加了以下代码 <html:form action="/validate" enctype="multipart/form-data"> <html:file property="file" id="selectedFile" style="display: none;" /> <input type="button" value="Browse..." onclick="do
<html:form action="/validate" enctype="multipart/form-data">
<html:file property="file" id="selectedFile" style="display: none;" />
<input type="button" value="Browse..." onclick="document.getElementById('selectedFile').click();" />
<html:sumbit/>
</html:form>
由于文件未在此处接收,因此显示FileNotFound异常如果我使用文本框的普通浏览按钮,代码运行正常。但要求是,文本框应该隐藏。而且这个按钮也不应该被css搞乱。有什么问题吗。不要使用
显示:无
,使用高度:0;宽度:0;不透明度:0代码>
为什么?
使用display:none
时,元素将从文档结构中完全删除,因此代码中不会检测到该元素
请注意,显示“无”不会创建不可见的框;
它根本不创建任何框。
不要使用js,它不会很好地工作。关闭onclick并在隐藏的文件输入和“不做任何事情”按钮周围加上标记。不要使用显示:无
而是使用可见性:隐藏
,这样您就可以访问文件名了。@dandavis我不明白您的意思。默认的浏览按钮和文本字段不显示。你是说将此按钮包装在标签中
,让标签打开文件资源管理器?@suresponnukalai如果我使用可见性:隐藏
,即使它是隐藏的,它是否仍会占用那么多空间?使用不透明度和大小隐藏文件上载。然后将带有for attrib的标签设置为文件上载的id。在标签中放置一个没有任何事件的按钮。现在,您可以单击“虚拟”按钮,它将打开“文件”对话框。@单击它,在样式修改后元素是否可见,或者在更改后元素是否不可见且仍然未被检测到?
public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception {
FileUploadForm uploadForm = (FileUploadForm) form;
FileOutputStream outputStream = null;
FormFile formFile = null;
try {
formFile = uploadForm.getFile();
String path = getServlet().getServletContext().getRealPath("") + "/" + formFile.getFileName();
outputStream = new FileOutputStream(new File(path));
outputStream.write(formFile.getFileData());
} finally {
if (outputStream != null) {
outputStream.close();
}
}
uploadForm.setMessage("The file " + formFile.getFileName() + " is uploaded successfully.");
return mapping.findForward(SUCCESS);
}