1

私の grails プロジェクトには、ファイルを取得し、データベースに保存される変数にファイル名を割り当てる multipart-form があります。

production フラグを使用して localhost からアプリを実行すると、フォームを正常に送信できますが、アプリを Glassfish サーバーにデプロイすると、サーバー 500 エラーが発生します。

Cannot get property 'originalFilename' on null object

マルチパートを正しく処理していないことに関係があるのではないかと考えています。誰でもこの問題を抱えているか、それを解決するための正しい方向に私を向けることができますか?

Oracle db を使用して Glassfish 3 サーバーにデプロイされた Grails 2.0.4 を使用します。

私の行動からの関連コード:

def uploadedFile = request.getFile('filepath')// see if there is a file to upload
        if (!uploadedFile?.empty) { // is there a file? 
            sampleInstance.filepath = "file://///FileLocation/${uploadedFile?.originalFilename}" // save the original filename

        }

gsp のフォーム:

<g:form action="sample" enctype="multipart/form-data">
 <g:textField name="name" value="${sampleInstance?.name}"/>
 ...
 <input type="file" id="filepath" name="filepath" />
 <g:submitButton name="submit" value="Submit" /></td>
</g:form>
4

1 に答える 1

1

null の場合uploadedFileは null にuploadedFile?.emptyなるので、

if (!uploadedFile?.empty) { // is there a file? 

あなたが期待していることの反対をします

あなたはおそらくやっているはずです

if ( uploadedFile && !uploadedFile.empty) { // is there a file? 
于 2012-06-13T20:04:30.010 に答える