2011-09-20 25 views
3

存在一个特殊问题。FormPanel不会在Firefox中上传文件

我正在使用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> 

回答

4

你的编码设置为ENCODING_MULTIPART,不multipart/form-data

注意:ENCODING_MULTIPARTString类型的常量,它不是枚举; setEncoding on FormPanelString作为参数;所以如果你在你的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}

+0

谢谢。不知道这是使用UiBinder的方式。 – elvispt

相关问题