2017-07-27 16 views
0

ファイルをアップロードするliferayのWebフォームポートレットにフィールドを追加しようとしています。現在のところ、私のフォームにこのフィールドを追加することはできますが、サーバー上の添付ファイルを取得できません。 nullポインタ例外が発生しています。以下は、Webフォームポートレットの4つのファイルで行った変更です。Webフォームポートレットにファイルを添付する

edit_field.jsp

<aui:option selected='<%= fieldType.equals("file") %>' value="file"> 
    <liferay-ui:message key="file" /></aui:option> 

view.jsp

<c:when test='<%= fieldType.equals("file") %>'> 
    <tr> 
     <td class="order-table-label"> 
     <label><%= HtmlUtil.escape(fieldLabel) %></label> 
    </td> 
    <td> 
    <aui:input cssClass='<%= fieldOptional ? "optional" : StringPool.BLANK 
    %>' label="" name="<%= fieldName %>" type="file" value=" 
    <%=HtmlUtil.escape(fieldValue) %>"/> 
    </td> 
    </tr> 
</c:when> 

ConfigurationActionImpl.java

boolean isFileUpload = false; 

    if("file".equals(fieldType)) 
    { 
    isFileUpload = true; 
    } 
    preferences.setValue("isFileUpload" + i, String.valueOf(isFileUpload)); 

WebFormPortlet.java

UploadPortletRequest uploadRequest = 
    Portalutil.getUploadPortletRequest(actionRequest); 

    File uploadedFile = uploadRequest.getFile("file"); 

    String sourcefileName = uploadRequest.getFileName(uploadedFile.getName()); 
    (Throws NULL pointer exception on this line) 

    File folder = new File("\tmp\uploadedfile"); 

    File filepath = new File(folder.getAbsolutePath() + File.seperator + 
    sourcefileName); 

    FileUtils.copyFile(uploadedFile ,filepath); 

答えて

0

私はtmpパスではなくドキュメントライブラリにファイルを格納しますが、実際には完全にポータルのスコープから外れています。

ポートレットのメール機能が必要ですか?私はあなたのカスタマイズがこのユースケースではうまくいかないと思います。

は、要求にファイルがないか、その名前ではないことをnpeのように見せています。

+0

私はすでにportal-ext.properties内のドキュメントライブラリのパスについて言及していますが、何も要求にのみ設定されていて、メール機能は必要ありません。サーバー上のファイルと残りの情報このファイルをリクエストするにはどうすればよいですか? –

関連する問題