中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

微信小程序uploadFile接口如何實現文件上傳

發布時間:2022-08-24 10:21:23 來源:億速云 閱讀:521 作者:iii 欄目:開發技術

今天小編給大家分享一下微信小程序uploadFile接口如何實現文件上傳的相關知識點,內容詳細,邏輯清晰,相信大部分人都還太了解這方面的知識,所以分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后有所收獲,下面我們一起來了解一下吧。

創建前端頁面

我們默認使用創建新項目進行講解,在index.vue最上方寫入代碼

<template>
	<view >
	上傳的文件名:
		<button type="primary"  @click="upload()">點擊上傳</button>
	</view>
</template>

通過前端點擊“點擊上傳”來調用對應的方法 

創建后運行如下

微信小程序uploadFile接口如何實現文件上傳

①uniapp必須用template標簽嵌套

否則

微信小程序uploadFile接口如何實現文件上傳

②小程序點擊事件用bindtap 而uniapp用@click

微信小程序uploadFile接口如何實現文件上傳

③uniapp的方法需要放在methods: {}里面

微信小程序uploadFile接口如何實現文件上傳

寫入js事件-完成上傳操作

接下來我們在剛剛創建測試的方法upload中進行修改,首先整個動作原理是:通過點擊按鈕觸發upload方法=》選擇文件獲取到本地的路徑=》上傳給服務器=》服務器返回上傳的文件名(上傳后隨機生成的)

微信小程序uploadFile接口如何實現文件上傳

了解到整個流程后我們先將 文件進行選擇

uni.chooseImage示例

			uni.chooseImage({
				success: (chooseImageRes) => {
					const tempFilePaths = chooseImageRes.tempFilePaths;
					console.log(tempFilePaths);
				}
			});

將代碼放在unload中運行測試

微信小程序uploadFile接口如何實現文件上傳

可以看到已經生成了臨時的文件

接下來我們通過uni.uploadFile方法完成對文件的上傳

uni.uploadFile示例

uni.uploadFile({
			url: 'https://www.example.com/upload', //僅為示例,非真實的接口地址
			filePath: tempFilePaths[0],
			name: 'file',
			formData: {
				'user': 'test'
			},
			success: (uploadFileRes) => {
				console.log(uploadFileRes.data);
			}
		});

配置后端php接口文件

在寫事件前,我通過在服務器上新建一個php文件作為文件上傳的接口

新建tp_imgsrc.php

考慮到大多數初學者這里決定用原生php進行開發

<?php 
// 上傳圖片 
function uploadimg() { 
    $file = $_FILES['file'];
    if ($file) { 
        //var_dump($file);
        // 獲取文件后綴名
        $ext = pathinfo($file['name'], PATHINFO_EXTENSION);
        $target = 'upload/' . uniqid() . '.' . $ext;
        // 轉移圖片地址
        if (!move_uploaded_file($file['tmp_name'], $target)) {
            $GLOBALS['error_message'] = '上傳圖片失敗';
            echo error_message;
        }
         die(
        json_encode(
            array(
            'errCode' => 0,
            'error_message'=>'圖片上傳成功',
            'file'=>$target
        ),480)
);
    }
}
uploadimg();

完成后整個目錄是這樣的(層級關系)

微信小程序uploadFile接口如何實現文件上傳

實現上傳功能

接下來 我們將剛剛的上傳接口uni.uploadFile與文件選擇接口uni.chooseImage合并一下完成整個流程,也就是選擇文件完成后,將選擇的文件上傳

我們在upload方法中寫入

let that=this;
			console.log("我被點擊了");
			uni.chooseImage({
				success: (chooseImageRes) => {
					const tempFilePaths = chooseImageRes.tempFilePaths;
					console.log(tempFilePaths);
					uni.uploadFile({
								url: 'https://你的接口地址/tp_imgsrc.php', //僅為示例,非真實的接口地址
								filePath: tempFilePaths[0],
								name: 'file',
								formData: {
								},
								success: (uploadFileRes) => {
									console.log(uploadFileRes.data);
								}
							});
				}
			});

測試運行看看

微信小程序uploadFile接口如何實現文件上傳

返回了文件名和我自己定義的返回碼

可以看到服務器上也是存在這個文件的

微信小程序uploadFile接口如何實現文件上傳

完善上傳功能

最重要的步驟我們已經做完了,那上傳成功是不是得告訴下上傳的用戶告訴他們上傳成功了?

于是我們需要做一下判斷,當errCode==0的時候高速用戶上傳成功

但是發現了個問題,php返回的是數組,為啥到uniapp返回的是字符串?

微信小程序uploadFile接口如何實現文件上傳

指導我看了下官方的文檔

微信小程序uploadFile接口如何實現文件上傳

返回的是字符類型

解決辦法:

      let param_json = JSON.stringify(this.$data)//轉為字符串
      let bookkeeping_data = JSON.parse(bookkeeping_data_string)//轉換為JSON

測試后完美解決

改動到的代碼

let json_data = JSON.parse(uploadFileRes.data)
console.log(json_data['errCode']);

微信小程序uploadFile接口如何實現文件上傳

接下來就可以將信息告訴用戶是否上傳成功了

uni.showToast示例

uni.showToast({
	title: '標題',
	icon:'none'
	duration: 2000
});

相應的代碼:

					let json_data = JSON.parse(uploadFileRes.data)
									console.log(json_data['errCode']);
									if (json_data['errCode']==0) {
										uni.showToast({
											title: json_data['error_message'],
											icon:'none',
											duration: 2000
										});
									} else{
									}

測試截圖

微信小程序uploadFile接口如何實現文件上傳

完整的index.vue

<template>
	<view >
	上傳的文件名:
		<button type="primary"  @click="upload">點擊上傳</button>
	</view>
</template>
<script>
	export default {
		data() {
			return {
				title: 'Hello'
			}
		},
		onLoad() {
         let that=this;
		uni.request({
		    url: 'https://api.uomg.com/api/qq.info', //僅為示例,并非真實接口地址。
		    data: {
		        qq: '504113939'
		    },
		    header: {
		        'Content-Type': 'application/json;charset=UTF-8' //自定義請求頭信息
		    },
		    success: (res) => {
		        console.log(res.data);
		    }
		});
		},
		methods: {
		upload(){
			let that=this;
			console.log("我被點擊了");
			uni.chooseImage({
				success: (chooseImageRes) => {
					const tempFilePaths = chooseImageRes.tempFilePaths;
					console.log(tempFilePaths);
					uni.uploadFile({
								url: 'https:/你的接口/tp_imgsrc.php', //僅為示例,非真實的接口地址
								filePath: tempFilePaths[0],
								name: 'file',
								formData: {
								},
								success: (uploadFileRes) => {
									let json_data = JSON.parse(uploadFileRes.data)
									console.log(json_data['errCode']);
									if (json_data['errCode']==0) {
										uni.showToast({
											title: json_data['error_message'],
											icon:'none',
											duration: 2000
										});
									} else{
									}
								}
							});
				}
			});
		},
		}
	}
</script>
<style>
	.content {
		display: flex;
		flex-direction: column;
		align-items: center;
		justify-content: center;
	}
	.logo {
		height: 200rpx;
		width: 200rpx;
		margin-top: 200rpx;
		margin-left: auto;
		margin-right: auto;
		margin-bottom: 50rpx;
	}
	.text-area {
		display: flex;
		justify-content: center;
	}
	.title {
		font-size: 36rpx;
		color: #8f8f94;
	}
</style>

以上就是“微信小程序uploadFile接口如何實現文件上傳”這篇文章的所有內容,感謝各位的閱讀!相信大家閱讀完這篇文章都有很大的收獲,小編每天都會為大家更新不同的知識,如果還想學習更多的知識,請關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

花莲县| 简阳市| 蒙山县| 巫山县| 贵阳市| 永州市| 故城县| 贡山| 福鼎市| 新巴尔虎右旗| 定安县| 龙山县| 富宁县| 牙克石市| 淳化县| 宁波市| 左权县| 淮滨县| 大荔县| 明星| 定南县| 江津市| 万山特区| 子长县| 千阳县| 海晏县| 永城市| 友谊县| 措勤县| 衢州市| 托克托县| 南昌市| 永修县| 西宁市| 来凤县| 晋州市| 张家界市| 舞钢市| 宁陕县| 虞城县| 黎平县|