最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

VUE+axios+php實(shí)現(xiàn)圖片上傳

 更新時(shí)間:2022年08月15日 11:10:56   作者:發(fā)量堪憂的小伙子  
這篇文章主要為大家詳細(xì)介紹了VUE+axios+php實(shí)現(xiàn)圖片上傳,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

本文實(shí)例為大家分享了VUE+axios+php實(shí)現(xiàn)圖片上傳的具體代碼,供大家參考,具體內(nèi)容如下

前端部分

執(zhí)行函數(shù),注意file那有個(gè)await,獲取到文件數(shù)據(jù)后,裝在FormData里面,然后調(diào)用下文axios的uploadFile

async uploadFiles() {
? ? ? let inputObj = document.createElement("input");
? ? ? let file = await new Promise((res) => {
? ? ? ? inputObj.setAttribute("id", "file");
? ? ? ? inputObj.setAttribute("type", "file");
? ? ? ? inputObj.setAttribute("name", "file");
? ? ? ? inputObj.setAttribute("style", "visibility:hidden");
? ? ? ? document.body.appendChild(inputObj);
? ? ? ? inputObj.click();

? ? ? ? document.querySelector("#file").addEventListener("change", (e) => {
? ? ? ? ? console.log(e.target.files);
? ? ? ? ? res(e.target.files)
? ? ? ? });
? ? ? });

? ? ? let formdata = new FormData()
? ? ? formdata.append('myFile', file[0])

? ? ? await this._http.uploadFile(formdata).then(console.log);
? ? ? document.body.removeChild(inputObj)
? ? },

http請(qǐng)求集中管理

async uploadFile(file) {
? ? return axios.post(`/Upload.php`,file,{
? ? ? headers: {"Content-Type": "multipart/form-data"}
? ? })
? }

php后端部分

接收參數(shù),調(diào)用uploadFile

<?php
header('content-type:text/html;charset=utf-8');
$fileInfo=$_FILES["myFile"];
$maxSize=10485760;//10M,10*1024*1024
$allowExt=array('jpeg','jpg','png','tif');
$path="uploads";
include_once 'UploadFile.php';

uploadFile($fileInfo, $path, $allowExt, $maxSize);

封裝uploadFile函數(shù)

<?php
function uploadFile($fileInfo, $path, $allowExt, $maxSize)
{
? $filename = $fileInfo["name"];
? $tmp_name = $fileInfo["tmp_name"];
? $size = $fileInfo["size"];
? $error = $fileInfo["error"];
? $type = $fileInfo["type"];
? //服務(wù)器端設(shè)定限制
? $ext = pathinfo($filename, PATHINFO_EXTENSION);
? //目的信息
? if (!file_exists($path)) {
? ? mkdir($path, 0777, true);
? ? chmod($path, 0777);
? }
? $uniName = md5(uniqid(microtime(true), true)) . '.' . $ext;
? $destination = $path . "/" . $uniName;
? if ($error == 0) {
? ? if ($size > $maxSize) {
? ? ? exit("上傳文件過(guò)大!");
? ? }
? ? if (!in_array($ext, $allowExt)) {
? ? ? exit("非法文件類型");
? ? }
? ? if (!is_uploaded_file($tmp_name)) {
? ? ? exit("上傳方式有誤,請(qǐng)使用post方式");
? ? }
? ? //判斷是否為真實(shí)圖片(防止偽裝成圖片的病毒一類的
? ? if (!getimagesize($tmp_name)) { //getimagesize真實(shí)返回?cái)?shù)組,否則返回false
? ? ? exit("不是真正的圖片類型");
? ? }
? ? if (@move_uploaded_file($tmp_name, $destination)) { //@錯(cuò)誤抑制符,不讓用戶看到警告
? ? ? echo "文件" . $filename . "上傳成功!";
? ? } else {
? ? ? echo "文件" . $filename . "上傳失敗!";
? ? }
? } else {
? ? switch ($error) {
? ? ? case 1:
? ? ? ? echo "超過(guò)了上傳文件的最大值,請(qǐng)上傳2M以下文件";
? ? ? ? break;
? ? ? case 2:
? ? ? ? echo "上傳文件過(guò)多,請(qǐng)一次上傳20個(gè)及以下文件!";
? ? ? ? break;
? ? ? case 3:
? ? ? ? echo "文件并未完全上傳,請(qǐng)?jiān)俅螄L試!";
? ? ? ? break;
? ? ? case 4:
? ? ? ? echo "未選擇上傳文件!";
? ? ? ? break;
? ? ? case 7:
? ? ? ? echo "沒(méi)有臨時(shí)文件夾";
? ? ? ? break;
? ? }
? }
? return $destination;
}

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • 幾個(gè)你不知道的技巧助你寫出更優(yōu)雅的vue.js代碼

    幾個(gè)你不知道的技巧助你寫出更優(yōu)雅的vue.js代碼

    本文參考自油管上某個(gè)國(guó)外大神的公開(kāi)演講視頻,學(xué)習(xí)了一下覺(jué)得很不錯(cuò),所以在項(xiàng)目中也使用了這些不錯(cuò)的技巧。趁周末有空,寫個(gè)博客記錄一下
    2018-06-06
  • 淺談element關(guān)于table拖拽排序問(wèn)題

    淺談element關(guān)于table拖拽排序問(wèn)題

    本文主要介紹了element關(guān)于table拖拽排序問(wèn)題,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-10-10
  • vue element封裝form表單的實(shí)現(xiàn)

    vue element封裝form表單的實(shí)現(xiàn)

    本文主要介紹了vue element封裝form表單的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-06-06
  • 利用Vue3的Teleport實(shí)現(xiàn)模態(tài)對(duì)話框功能

    利用Vue3的Teleport實(shí)現(xiàn)模態(tài)對(duì)話框功能

    在前端開(kāi)發(fā)中,模態(tài)對(duì)話框是一種常見(jiàn)的用戶交互方式,它能夠有效地提示用戶、收集信息或確認(rèn)操作,隨著現(xiàn)代框架的演進(jìn),Vue 3 的出現(xiàn)為我們提供了更便捷、高效的方式來(lái)處理復(fù)雜的界面布局,今天,我們將深入探討如何利用 Vue 3 的新特性 Teleport 來(lái)實(shí)現(xiàn)模態(tài)對(duì)話框
    2025-02-02
  • vue-cli 關(guān)閉熱更新操作

    vue-cli 關(guān)閉熱更新操作

    這篇文章主要介紹了vue-cli 關(guān)閉熱更新操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-09-09
  • Vue3 去除 vue warn 及生產(chǎn)環(huán)境去除console.log的方法

    Vue3 去除 vue warn 及生產(chǎn)環(huán)境去除console.log的方法

    這篇文章主要介紹了Vue3 去除 vue warn 及生產(chǎn)環(huán)境去除console.log的方法,本文結(jié)合實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-06-06
  • Vite創(chuàng)建項(xiàng)目的實(shí)現(xiàn)步驟

    Vite創(chuàng)建項(xiàng)目的實(shí)現(xiàn)步驟

    隨著 Vite2 的發(fā)布并日趨穩(wěn)定,現(xiàn)在越來(lái)越多的項(xiàng)目開(kāi)始嘗試使用它。本文我們就介紹了Vite創(chuàng)建項(xiàng)目的實(shí)現(xiàn)步驟,感興趣的可以了解一下
    2021-07-07
  • 詳解vuejs中執(zhí)行npm run dev出現(xiàn)頁(yè)面cannot GET/問(wèn)題

    詳解vuejs中執(zhí)行npm run dev出現(xiàn)頁(yè)面cannot GET/問(wèn)題

    這篇文章主要介紹了詳解vuejs中執(zhí)行npm run dev出現(xiàn)頁(yè)面cannot GET/問(wèn)題,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-04-04
  • VueX模塊的具體使用(小白教程)

    VueX模塊的具體使用(小白教程)

    這篇文章主要介紹了VueX模塊的具體使用,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-06-06
  • Vue 3.x+axios跨域方案的踩坑指南

    Vue 3.x+axios跨域方案的踩坑指南

    這篇文章主要給大家介紹了關(guān)于Vue 3.x+axios跨域方案的踩坑指南,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用Vue 3.x具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-07-07

最新評(píng)論

资阳市| 南涧| 牟定县| 中阳县| 太保市| 泸溪县| 康保县| 博爱县| 玉林市| 衡阳县| 北流市| 巴彦县| 庆城县| 广灵县| 花垣县| 前郭尔| 微山县| 嘉祥县| 雷波县| 周至县| 汉川市| 平潭县| 密山市| 吕梁市| 乌鲁木齐县| 郧西县| 宁安市| 宜宾市| 栖霞市| 阿瓦提县| 肃南| 扶余县| 区。| 乌审旗| 塔城市| 彰化县| 体育| 依安县| 宝丰县| 襄汾县| 滦平县|