1

MuleSoft CMIS コネクタに少し問題があります。Alfresco からファイルをアップロードおよびダウンロードするアプリケーションがあります。AtomPub を介して Alfresco に接続し、Alfresco に対するすべてのアクションに CMIS を使用します。

問題は次のとおりです。以前はリポジトリからオブジェクトを取得していましたが、正常に機能しました。私のフローでは、フローからオブジェクトを取得する 1 つのコンポーネントを追加しました。これは、タイプDocumentImplgetInputStreamであり、オブジェクトにキャストして返します。ブラウザはファイルのダウンロードを開始しますが、ファイルに拡張子が付いていないため、ファイルが何であるかはわかりません。

最後に質問: ダウンロードするファイルに拡張子を付けるにはどうすればよいですか?

いくつかのコードを編集して追加

@Override public Object onCall(MuleEventContext eventContext) throws Exception {

    MuleMessage mes = eventContext.getMessage();
    System.out.println("Message is :" +mes);

    DocumentImpl doc = mes.getPayload(DocumentImpl.class);

    HttpResponse res = new HttpResponse();
    InputStream a = doc.getContentStream().getStream();
    String m = doc.getContentStreamMimeType();
    String n = doc.getContentStreamFileName();

    res.setBody(mes);


    return a;
}
4

1 に答える 1

1

わかりました私は問題を解決しました。基本的にこれを行う最善の方法は、フローを次のように変更することです。

    <set-payload value ="#[payload.getContentStream()]" />

    <set-variable value="#[payload.getMimeType()]" variableName="mime" doc:name="Variable" />
    <set-variable value="#[payload.getFileName()]" variableName="name" doc:name="Variable" />

    <!-- Set Content-Type to stored mimetype -->        
    <set-property value="#[flowVars['mime']]" propertyName="Content-Type" />
    <set-property propertyName="File-Name" value="#[flowVars['name']]"/>
    <set-property value="attachment; filename=#[flowVars['name']]" propertyName="Content-Disposition" />

これは、Mule Flow の後にある必要があります。

これは、ペイロードから MIME タイプとファイル名を取得し、それを返します!

于 2013-02-01T15:26:27.800 に答える