本部長は管理ができない

Salesforceに関わっているエンジニアの技術メモ。ときどきそれ以外。

ファイルアップロード時のビューステートエラー対応

Apexでメモ&添付ファイルに135KB以上のファイルをアップロードした際に、ビューステートエラーになったので、対応方法をメモ。

public class uploadFileController{
    public Attachment attach {get; set;}

    public uploadFileController(){
        attach = new Attachment();
    }

    public void uploadFile(){
        attach.Parentid = 'XXXXXXX';

        try {
            insert attach;
            System.debug('アップロード完了');
        }
        catch (Exception e) {
            System.debug('アップロードエラー');
            System.debug(e.getMessage());
        }
        finally {
            // 135.0KB以上のファイルを指定した場合、nullにしないとビューステートエラーになる
            attach.Body = null;
        }

        return;
    }
}
  • insertが完了したら、Bodyをnullにする。
  • ドキュメントも同じと思われる(未実験)。