For interfaces requiring file uploads, use the AlipayFormData class to construct multipart/form-data requests. You can add files using file paths, file streams, or file buffers.
Using a file path
const form = new AlipayFormData();
form.addFile('file_content', 'image.jpg', path.join(__dirname, './test.jpg'));
Using a file stream
import fs from 'node:fs';
const form = new AlipayFormData();
form.addFile('file_content', 'image.jpg', fs.createReadStream('/path/to/test-file'));
Using a file buffer
import fs from 'node:fs';
const form = new AlipayFormData();
form.addFile('file_content', 'image.jpg', fs.readFileSync('/path/to/test-file'));
To execute the upload, pass the form instance in the curl options:
const uploadResult = await alipaySdk.curl<{ file_id: string }>('POST', '/v3/alipay/open/file/upload', {
form,
body: {
biz_code: 'openpt_appstore',
},
});
import { AlipayFormData } from 'alipay-sdk';
const form = new AlipayFormData();
form.addFile('file_content', '图片.jpg', path.join(__dirname, './test.jpg'));
const uploadResult = await alipaySdk.curl<{
file_id: string;
}>
('POST', '/v3/alipay/open/file/upload', {
form,
body: {
biz_code: 'openpt_appstore',
},
});
console.log(uploadResult);
// {
// data: { file_id: 'A*7Cr9T6IAAC4AAAAAAAAAAAAAATcnAA' },
// responseHttpStatus: 200,
// traceId: '06033316171731110716358764348'
// }