隐藏文件的文本框上传浏览按钮

时间:2014-08-14 04:47:25

标签: 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="document.getElementById('selectedFile').click();" />
   <html:sumbit/>
 </html:form>

在选择文件之前一切正常。我正在为我的项目使用spring。

当我使用这种方法时,我无法将文件传递给类方法。我需要隐藏文本框。以下是我在课堂上使用的代码。

 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);
    }

由于文件未在此处获取,因此显示FileNotFound异常。 代码运行良好如果我使用带文本框的普通浏览按钮。但要求就是,应该隐藏文本框。按钮也不应该与css混淆。有什么想法会出错。

1 个答案:

答案 0 :(得分:0)

请勿使用display:none,请使用height:0;width:0;opacity:0;

为什么?

当您使用display:none时,元素将从文档结构中完全删除,因此代码中感知

  

请注意,'none'的显示不会创建一个隐形框;   它根本不会创造任何盒子。   http://www.w3.org/TR/CSS2/visuren.html#propdef-display