uniapp是一種基于vue.js框架的跨平臺應用開發框架,可以實現一次編寫,多平臺部署的效果。在實際應用中,文件上傳是一個常見的需求,比如說圖片上傳、視頻上傳等等。本文將詳細介紹如何使用uniapp實現文件上傳功能,以及提供具體的代碼示例。
實現文件上傳的基本思路是:先在前端將選中的文件進行打包,然后發送給后端進行處理。uniapp中可利用官方提供的uni.uploadFile方法實現文件上傳。uni.uploadFile方法可以將本地資源上傳至遠程服務器,上傳過程采用分片上傳,可實現穩定可靠的文件上傳。
實現文件上傳功能前,需要先安裝uniapp-cli的環境,以及對應的uniapp框架版本。
接下來,我們就來看一下具體代碼實現。
前端部分:
在前端頁面中,需要設置文件上傳的表單,以及設置上傳的按鈕。代碼如下:
1、在HTML頁面中設置文件上傳表單:
<form> <input type="file" id="fileInput" multiple="multiple"> </form>
登錄后復制
其中,<input type="file">標簽設置了文件上傳的入口,在點擊上傳按鈕時,會自動調出系統文件選擇對話框。
2、在HTML頁面中設置上傳按鈕:
<button type="button" @click="uploadFile">上傳</button>
登錄后復制
在按鈕上設置@click事件,當用戶點擊上傳按鈕時,觸發uploadFile函數進行上傳操作。
3、在JS文件中編寫uploadFile函數:
uploadFile() {
uni.chooseImage({
count: 1, // 可上傳的圖片數量,為1表示單張上傳
success: function (res) {
uni.showLoading({
title: "上傳中,請稍候..."
});
uni.uploadFile({
url: "http://localhost:8081/upload.php", // 上傳接口地址
filePath: res.tempFilePaths[0], // 上傳文件的本地路徑
name: "uploadfile", // 上傳文件對應的 key 值
success: function (result) {
uni.hideLoading();
console.log(result);
uni.showToast({
title: "上傳成功!",
duration: 2000
});
}
});
}
});
}
登錄后復制
其中,uni.chooseImage用于打開系統相冊,uni.showLoading用于展示上傳中的加載框,uni.uploadFile用于發送上傳文件的請求。
關于uni.uploadFile具體參數的介紹:
url:上傳接口的地址;filePath:上傳文件的本地路徑;name:上傳文件的 name 值,后端接口中需要接收該參數;success:上傳成功后的回調函數。
這樣,前端部分的代碼就完成了。
后端部分:
在后端,需要處理上傳過來的文件信息。這里我們以PHP語言為例,編寫相應的處理邏輯。
1、創建upload.php文件,用于上傳處理:
<?php
$uploaddir = './upload/'; //文件上傳的目錄,需要事先創建好
$filename = $_FILES['uploadfile']['name']; // 獲取上傳文件的名稱
$uploadfile = $uploaddir . $filename;
if (move_uploaded_file($_FILES['uploadfile']['tmp_name'], $uploadfile)) { //上傳成功
echo json_encode(array(
'success' => true,
'msg' => '上傳成功!'
));
}
else { //上傳失敗
echo json_encode(array(
'success' => false,
'msg' => '上傳失?。?
));
}
?>
登錄后復制
其中,move_uploaded_file函數用于移動臨時文件到指定目錄。這里上傳的文件會被重命名,使用原始文件名可能會產生沖突。需要注意的是,上傳目錄需要在服務器上提前創建好。
2、啟動一個PHP服務,作為后端服務器,監聽上傳請求。在本地安裝xampp或wampserver,啟動后,在瀏覽器中輸入localhost/xxx/upload.php即可訪問上傳服務,其中xxx為upload.php存放的文件夾位置。
這樣,后端部分的代碼就完成了,可以通過服務器地址將文件上傳到指定目錄。
總結:
本文介紹了使用uniapp實現文件上傳功能的具體步驟,主要包括前端和后端兩部分。通過前端設置文件上傳表單以及上傳按鈕,并在JS文件中編寫上傳函數;后端使用PHP編寫上傳服務,監聽上傳請求,將文件上傳到指定目錄。在前端向后端發送上傳請求時,使用uni.uploadFile方法進行文件上傳,可以提供穩定可靠的上傳服務。






