百度智能小程序 本地資源上傳

2020-09-05 14:09 更新

swan.uploadFile

請參考使用注意事項進行開發(fā)。

解釋:將本地資源上傳到開發(fā)者服務器,客戶端發(fā)起一個 HTTPS POST 請求,其中content-type

multipart/form-data

如頁面通過 swan.chooseImage 等接口獲取到一個本地資源的臨時文件路徑后,可通過此接口將本地資源上傳到指定服務器。

方法參數(shù)

Object object

object 參數(shù)說明

屬性名 類型 必填 默認值 說明

url

String

開發(fā)者服務器 url

filePath

String

要上傳文件資源的路徑

name

String

文件對應的 key ,開發(fā)者在服務器端通過這個 key 可以獲取到文件二進制內(nèi)容

header

Object

HTTP 請求 Header , header 中不能設置 Referer

formData

Object

HTTP 請求中其他額外的 form data

success

Function

接口調(diào)用成功的回調(diào)函數(shù)

fail

Function

接口調(diào)用失敗的回調(diào)函數(shù)

complete

Function

接口調(diào)用結(jié)束的回調(diào)函數(shù)(調(diào)用成功、失敗都會執(zhí)行)

success 返回參數(shù)說明

參數(shù) 類型 說明

data

String

開發(fā)者服務器返回的數(shù)據(jù)

statusCode

Number

開發(fā)者服務器返回的 HTTP 狀態(tài)碼

fail 返回值參數(shù)說明

  • Android
    錯誤碼 說明

    201

    解析失敗,請檢查調(diào)起協(xié)議是否合法

    202

    解析失敗,請檢查參數(shù)是否正確

    1001

    執(zhí)行失敗

  • iOS
    錯誤碼 說明

    202

    解析失敗,請檢查參數(shù)是否正確

    1

    解析失敗,請檢查參數(shù)是否正確

示例 

在開發(fā)者工具中打開


圖片示例



代碼示例

<view class="wrap">
    <view class="card-area">
        <view class="display-area">
            <view s-if="{{filePath}}" bindtap="chooseImage">
                <image class="image-items" src="{{filePath}}" mode="aspectFit"></image>
            </view>
            <view s-else bindtap="chooseImage">
                <image class="img" src="https://b.bdstatic.com/searchbox/icms/searchbox/img/plus.png" rel="external nofollow" ></image>
                <view class="title">添加圖片文件</view>
            </view>
        </view>
        <view class="button-area">
            <button type="primary" bindtap="uploadFile">點擊上傳</button>
        </view>
    </view>
</view>
Page({
    data: {
        filePath: ''
    },
    chooseImage() {
        swan.chooseImage({
            count: 1,
            sizeType: ['compressed'],
            sourceType: ['album'],
            success: res => {
                this.setData('filePath', res.tempFilePaths[0]);
            }
        });
    },
    uploadFile() {
        const filePath = this.getData('filePath');
        if (!filePath) {
            swan.showToast({
                title: '請先上傳圖片',
                icon: 'none'
            });
        }
        swan.uploadFile({
            url: 'https://xxxx', // 僅為示例,并非真實的接口地址
            filePath,
            name: 'myfile',
            header: {
                'content-type': 'multipart/form-data'
            },
            formData: {
                'user': 'test'
            },
            success: res => {
                swan.showToast({
                    title: '上傳成功',
                    icon: 'none'
                });
                console.log('uploadFile success', res);
                this.setData({filePath});
            },
            fail: err => {
                console.log('uploadFile fail', err);
                swan.showToast({
                    title: '上傳失敗',
                    icon: 'none'
                });
            }
        }); 
    }
});

返回值:返回一個uploadTask對象,通過uploadTask,可監(jiān)聽上傳進度變化事件,以及取消上傳任務。

Bug & Tip

  • uploadFile 上傳文件大小限制為 25M 。


以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號