本文介绍如何使用uploadFile上传文件。

方法定义

mpserverless.file.uploadFile(options: object): Promise<Result>

请求参数

options 参数定义:

字段名

类型

必填

说明

filePath

String

本地文件路径,SDK会根据路径自动生成文件名称、文件类型、文件大小。

meta

Object

自定义文件响应头键值对。例如,自定义 "user-id": "123456" ,访问文件响应头会包含x-oss-meta-user-id: 123456

cloudPath

String

云端文件路径,必须以“/”开头,例如“/static/image/hello.jpg”,当该路径已有文件时自动覆盖。

说明

SDK版本不得小于3.1.5。

重要
  • 单个文件要求小于100 MB。

  • 文件类型支持的格式:

    • 图片:jpg、jpeg、png、.gif、.bmp、.wbmp 、.svg、.image。

    • 音频:.audio、.au、.mp2、.mp3。

    • 视频:.3gpp、.mp4、.mpeg、.flv、.avi、.wmv、.mpg、.mpga。

    • 文件:.pdf、.xls、.xlsx、.doc、.docx、.ppt、.pptx、.txt。

返回参数

字段名

类型

说明

fileId

String

文件ID。

说明

SDK版本不得小于3.1.3。

filePath

String

云端文件相对路径。

fileUrl

String

上传文件后获得的文件链接地址。

示例

支付宝小程序上传文件示例

/* 图片上传示例 */
my.chooseImage({
    chooseImage: 1,
    success: res => {

        const path = res.apFilePaths[0];
        const options = {
            filePath: path,
        };

        mpserverless.file.uploadFile(options)
        .then(res => { 
            console.log(res);  
        })
        .catch(err => {  
            console.log(err);
        });

    },
});

/* 文件上传示例 */
my.downloadFile({
    url: '网络文件地址',
    success: res => {
        const path = res.apFilePath;
        const options = {
            filePath: path,
        };
        mpserverless.file.uploadFile(options)
        .then(res => { 
            console.log(res);  
        })
        .catch(err => {  
            console.log(err);
        });
    },
});

输出示例:

{
    "fileId": "5d916ee7-869f-4b90-8224-2ad15e259867",
    "fileUrl": "https://mp-…storage/2e7acad6-2212-4863-aaa7-4e89d7d8df4c.png", 
    "filePath": "cloudstorage/2e7acad6-2212-4863-aaa7-4e89d7d8df4c.png"
}

微信小程序上传文件示例:

/* 图片上传示例 */
wx.chooseImage({
    count: 1,
    sizeType: [ 'original', 'compressed' ],
    sourceType: ['album', 'camera'],
    success: res => {

        const path = res.tempFilePaths[0];
        const options = {
            filePath: path,
        };

        mpserverless.file.uploadFile(options)
        .then(res => { 
            console.log(res);  
        })
        .catch(err => {  
            console.log(err);
        });

    },
});

/* 文件上传示例 */
wx.downloadFile({
    url: '网络文件地址',
    success: res => {
        const path = res.tempFilePath;
        const options = {
            filePath: path,
        };
        mpserverless.file.uploadFile(options)
        .then(res => { 
            console.log(res);  
        })
        .catch(err => {  
            console.log(err);
        });
    },
});

钉钉小程序上传文件示例:

/* 图片上传示例 */
dd.chooseImage({
    chooseImage: 1,
    success: res => {

        const path = res.apFilePaths[0];
        const options = {
            filePath: path,
        };

        mpserverless.file.uploadFile(options)
        .then(res => { 
            console.log(res);  
        })
        .catch(err => {  
            console.log(err);
        });

  },
});

/* 文件上传示例 */
dd.downloadFile({
    url: '网络文件地址',
    success: res => {
        const path = res.filePath;
        const options = {
            filePath: filePath,
        };
        mpserverless.file.uploadFile(options)
        .then(res => { 
            console.log(res);  
        })
        .catch(err => {  
            console.log(err);
        });
    },
});