【Salesforce】Visualforceで添付ファイルを扱う

【Salesforce】Visualforceで添付ファイルを扱う

Visualforceの画面で、添付ファイルをアップロードしたいということがよくあるかと思います。

Salesforceのレコードに添付されているファイルはAttachmentというレコードで存在します。

https://developer.salesforce.com/docs/atlas.ja-jp.api.meta/api/sforce_api_objects_attachment.htm

ファイルをアップロードする対象のレコードを親としてAttachmentのレコードを作成すればできてしまいます。

さらに、Visualforceタグには都合よくファイルをアップロードするためのタグが存在します。

「apex:inputFile」タグがそれにあたりますね。

https://developer.salesforce.com/docs/atlas.ja-jp.204.0.pages.meta/pages/pages_compref_inputFile.htm

これらを利用することで、簡単に添付ファイルを作成することができます。

簡単な例を記述します。

こちらはApex側の処理です。

public Account account{get;set;}
public Attachment attachment{get;set;}

public void upload(){

    // 取引先のIDを親IDにする
    this.attachment.ParentId = this.account.Id;
    insert this.attachment
}

こちらはVisualforce側です。

<apex:inputFile fileName="{!attachment.Name}" value="{!attachment.Body}" />

<apex:commandButton action="{!upload}" value="アップロード" />

上のURLにもあるように、10Mバイトのファイルまでアップロードできるようです。

とても簡単ですね。

No comments.

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です