layui+php上傳文件 的思路講解

代碼編輯軟件看個人習慣,首先我們先寫前端部分代碼

1.laiyui官網:https://www.layui.com/  下載代碼包

2.把下載好的代碼包放入新建好的的項目中

3.引用layui的css跟js文件

<!-- 引入layui樣式 -->
<link rel="stylesheet" href="layui/css/layui.css">
<!-- 引入layui js -->
<script src="layui/layui.js" type="text/javascript" charset="utf-8"></script>
<!-- 引入jquery -->

4.查看layui上傳文件的官方文檔:https://www.layui.com/doc/modules/upload.html

5.直接把文檔中的代碼複製粘貼到body中

6.點擊按鈕便可以選擇文件

接下來我們寫上傳文件的PHP

1.首先安裝一個phpStudy,

2.找到安裝目錄中的PHPTutorial目錄下的WWW目錄

3.新建一個up.php然後用編輯軟件打開

      1).首先在PHP文件<?php...?>聲明是PHP文件

      2).在文件頂部加入下面代碼。具體作用我已經註釋到代碼後面了

 <?php 
 header("Access-Control-Allow-Origin: *"); //解決跨域
 header('Access-Control-Allow-Methods:post');// 響應類型
 date_default_timezone_set('PRC');//獲取當前時間

     3).獲取上傳文件目錄


$month = date('Ym', time());//獲取年月
define('BASE_PATH', str_replace('\\', '/', realpath(dirname(__FILE__).'/'))."/");
$dir = BASE_PATH."upload/".$month."/";//判斷是否有對應的文件

   4).然年後初始化一個數組作爲返回數組

$arr = array(
'code' => 0,//返回狀態
'msg'=> '',//提示消息
'data' =>array(//文件鏈接
     'src' => $dir . $_FILES["file"]["name"]
     ),
);
 

    5).文件處理

$file_info = $_FILES['file'];//前端傳過來的文件
 $file_error = $file_info['error'];
if (!is_dir($dir)) {//判斷目錄是否存在
    mkdir($dir, 0777, true);//如果目錄不存在則創建目錄
};
$file = $dir.$_FILES["file"]["name"];//上傳文件的名字
if (!file_exists($file)) {//判斷文件中是否有相同的文件
    if ($file_error == 0) {
        if (move_uploaded_file($_FILES["file"]["tmp_name"], $dir. $_FILES["file"]["name"])) {
            $arr['msg'] ="上傳成功";
        } else {
            $arr['msg'] = "上傳失敗";
        }
    } else {
        switch ($file_error) {
            case 1:
           $arr['msg'] ='上傳文件超過了PHP配置文件中upload_max_filesize選項的值';
                break;
            case 2:
              $arr['msg'] ='超過了表單max_file_size限制的大小';
                break;
            case 3:
               $arr['msg'] ='文件部分被上傳';
                break;
            case 4:
              $arr['msg'] ='沒有選擇上傳文件';
                break;
            case 6:
                $arr['msg'] ='沒有找到臨時文件';
                break;
            case 7:
            case 8:
               $arr['msg'] = '系統錯誤';
                break;
        }
    }
} else {
    $arr['code'] ="1";
    $arr['msg'] = "當前目錄中,文件".$file."已存在";
}
 echo json_encode($arr);//將遍歷好的數組反給前端

PHP代碼大概就這樣,然後我們將寫好的接口放到前端的url中

按照我跟你們講的接口爲http://localhost/up.php

大概是路就這樣,要沒看明白的話這是源代碼鏈接:https://blog.csdn.net/qq_41241504/article/details/103303384

可以自己研究一下。

各位大佬要是有什麼好的思路歡迎評論到下面,我會積極採納的

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章