php - FormPanel 不在 Firefox 中上传文件

标签 php firefox gwt

有一个特殊的问题。

我正在使用 FormPanel 将数据发送到数据库并上传文件。

在 Chrome 中,这工作正常,但在 Firefox 中,它将数据发送到数据库但不上传文件。 Firebug 返回以下错误:

Form contains a file input, but is missing method=POST and enctype=multipart/form-data on the form.  The file will not be sent.

我觉得这很奇怪。 检查页面源代码,一切正常:

<form target="FormPanel_revanweb_1" action="phpFiles/newBookmark.php" enctype="ENCODING_MULTIPART" method="POST" style="position: absolute; left: 0px; top: 0px; right: 0px; bottom: 0px;" class="gwt-TabLayoutPanelContent">

这就是我使用 UiBinder 构建表单面板的方式:

<g:FormPanel ui:field="formPanel" action="phpFiles/newBookmark.php" method="POST" encoding="ENCODING_MULTIPART">
    <g:VerticalPanel ui:field="tabNewWrapper" stylePrimaryName="tabNew-wrapper">
        <g:HTMLPanel ui:field="bookmarkNamePanel" styleName="container">
            <g:Label text="Bookmark Name:" />
            <g:TextBox name="txtBookmarkName" ui:field="txtBookmarkName" width="100%" />
        </g:HTMLPanel>
        <g:HTMLPanel ui:field="bookmarkURLPanel" styleName="container">
            <g:Label text="Bookmark URL:" styleName="label" />
            <g:TextBox name="txtBookmarkURL" ui:field="txtBookmarkURL" width="100%" />
        </g:HTMLPanel>
        <g:HTMLPanel ui:field="bookmarkDescriptionPanel" styleName="container">
            <g:Label text="Bookmark Description" styleName="label" />
            <g:TextArea name="txtBookmarkDescription" ui:field="txtBookmarkDescription" width="100%" height="60px" />
        </g:HTMLPanel>
        <g:HTMLPanel ui:field="bookmarkImgUploadPanel" styleName="container">
            <g:Label text="Image:" styleName="label" />                             
                <g:VerticalPanel ui:field="vpForm">
                    <g:FileUpload name="logo" ui:field="uploadFile" />
                </g:VerticalPanel>
        </g:HTMLPanel>
        <g:HTMLPanel ui:field="bookmarkcbActivePanel" styleName="container">
            <g:CheckBox  name="cbActive" ui:field="cbActive" text="Active?" styleName="label" />
        </g:HTMLPanel>
        <g:HTMLPanel ui:field="bookmarkTagsPanel" styleName="container">
            <g:Label text="Tags:" styleName="label" />
            <g:SuggestBox ui:field="sbBookmarkTags" animationEnabled="true" width="100%" />
        </g:HTMLPanel>
        <g:HTMLPanel ui:field="btnOKPanel" styleName="container">
            <g:SubmitButton ui:field="btnSubmit" text="OK" styleName="buttonOK" />
            <g:Label ui:field="lblWarning" visible="false" styleName="warning" />
            <g:Hidden ui:field="sessionID" name="sessionid" visible="false" />
        </g:HTMLPanel>
    </g:VerticalPanel>
</g:FormPanel>

最佳答案

您将编码设置为 ENCODING_MULTIPART , 不是 multipart/form-data .

注意:ENCODING_MULTIPARTString 类型的常量,它不是一个枚举; setEncodingFormPanel需要 String作为论据;因此,如果您在 ui.xml 中编写 ENCODING_MULTIPART,您会将字符串设置为 "ENCODING_MULTIPART" ,而不是 FormPanel.ENCODING_MULTIPART 的值常量(顺便说一句,只能在 ui.xml 中使用 <ui:import field="com.google.gwt.user.client.ui.FormPanel.ENCODING_MULTIPART" /> 引用,然后用作 {ENCODING_MULTIPART} )

关于php - FormPanel 不在 Firefox 中上传文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7487333/

相关文章:

javascript - 将 PHP 变量转换为 JavaScript 变量

html - IE7 和 Firefox/Opera/Chrome 之间的间距差异

gwt - 使用 RootLayoutPanel 和 DockPanel 时如何设置 5% 的边距

java - GWT - 更新面板中的表

php - MySQL : How to set the starting value of auto-increment field?

javascript - 如何从单独的域请求 JSON 数据并自己使用它

css - wordpress 字体 css 在 firefox 中不起作用

java - PopupPanel 的问题 - gwt

php - 数据为 UTF-8,Ajax 错误返回一些字符

MacOSX 或 AppleScript : get current URL from Firefox