본문으로 건너뛰기

saveBase64Data

Base64 인코딩된 데이터를 지정한 파일명과 MIME 타입으로 장치에 저장합니다. 서버에서 받은 PDF, 이미지, CSV처럼 인-메모리 바이너리를 사용자에게 파일로 전달해야 할 때 씁니다.

시그니처

import { saveBase64Data } from '@apps-in-toss/web-framework';

declare function saveBase64Data(params: {
data: string;
fileName: string;
mimeType: string;
}): Promise<void>;

파라미터

이름타입필수설명
params.datastringBase64 인코딩된 데이터 문자열. data: URI 접두사 없이 순수 Base64 문자열만 전달하세요.
params.fileNamestring저장될 파일명. 확장자를 포함하세요 (예: report.pdf, photo.jpg).
params.mimeTypestring파일의 MIME 타입 (예: application/pdf, image/jpeg, text/csv).

반환값

  • Promise<void> — 저장이 완료되면 resolve.
  • devtools mock 환경에서는 브라우저의 파일 다운로드로 처리됩니다. 실제 앱 저장소 동작은 토스 앱 내부(iOS / Android)에서 확인해야 합니다.

권한

권한이 필요하지 않습니다 — storage 네임스페이스는 별도의 PermissionName에 바인딩되지 않습니다. 권한이 필요한 다른 네임스페이스의 일반적인 처리 흐름은 Guides — 권한 처리 패턴을 참고하세요.

예제

최소 예제

import { saveBase64Data } from '@apps-in-toss/web-framework';

// 'Hello, World!'의 Base64 인코딩
await saveBase64Data({
data: 'SGVsbG8sIFdvcmxkIQ==',
fileName: 'hello.txt',
mimeType: 'text/plain',
});

실전 예제 — 서버에서 받은 PDF 저장

import { saveBase64Data } from '@apps-in-toss/web-framework';

async function downloadReceipt(orderId: string) {
// 서버에서 Base64 인코딩된 PDF를 받아옴
const response = await fetch(`/api/receipts/${orderId}`, {
headers: { Accept: 'application/json' },
});
const { base64Pdf, fileName } = await response.json() as {
base64Pdf: string;
fileName: string;
};

await saveBase64Data({
data: base64Pdf,
fileName: fileName ?? `receipt-${orderId}.pdf`,
mimeType: 'application/pdf',
});
}

직접 실행해 보기

sdk-example의 Storage 페이지에서 saveBase64Data 카드를 실행해 결과를 확인할 수 있습니다.

sdk-example에서 실행해 보기

관련 API

관련 가이드

외부 참조