thinkphp8之文件上傳

  • 文件上傳安裝

命令:composer require topthink/think-filesystem

二.上傳代碼、接收代碼

<form action="/index/index/index" enctype="multipart/form-data" method="post">

<input type="file" name="image" /> <br>

<input type="submit" value="上傳" />

</form>

$file = request()->file('image');

接收到$file是一個對象,多圖片是對象里面是多個圖片數組

object(think\file\UploadedFile)#66 (9) {

??["test":"think\file\UploadedFile":private]=>

??bool(false)

??["originalName":"think\file\UploadedFile":private]=>

??string(35) "bcc2c9150d753eda616e11c090726a1.png"

??["mimeType":"think\file\UploadedFile":private]=>

??string(9) "image/png"

??["error":"think\file\UploadedFile":private]=>

??int(0)

??["hash":protected]=>

??array(0) {

??}

??["hashName":protected]=>

??NULL

??["extension":protected]=>

??NULL

??["pathName":"SplFileInfo":private]=>

??string(41) "C:\Users\j\AppData\Local\Temp\php21D4.tmp"

??["fileName":"SplFileInfo":private]=>

??string(11) "php21D4.tmp"

}

三.圖片上傳
$savename = \think\facade\Filesystem::disk('public')->putFile( 'topic', $file);

返回topic/20250625/fc51ff39bab056af7b1e8e33203243ba.png
路徑是在public/storage/topic/20250625下面

四.上傳配置
上傳路徑的配置config\filesystem.php里面,更改root和url屬性可以更改存儲的位置

??????'public' => [

????????????// 磁盤類型

????????????'type' ??????=> 'local',

????????????// 磁盤路徑

????????????'root' ??????=> app()->getRootPath() . 'public/storage',

????????????// 磁盤路徑對應的外部URL路徑

????????????'url' ???????=> '/storage',

????????????// 可見性

????????????'visibility' => 'public',

????????],

例如:上傳代碼修改為$savename = \think\facade\Filesystem::disk('public')->putFile('sss', $file);
配置修改為:?'public' => [

????????????// 磁盤類型

????????????'type' ??????=> 'local',

????????????// 磁盤路徑

????????????'root' ??????=> app()->getRootPath() . 'public/static',

????????????// 磁盤路徑對應的外部URL路徑

????????????'url' ???????=> '/static',

????????????// 可見性

????????????'visibility' => 'public',

????????],
就會把圖片上傳到public/static/sss下面

  • \think\facade\Filesystem對象的用法
    位置:vendor/topthink/think-filesystem/src/Filesystem.php
    例如:disk方法加載配置里面的類型、getConfig方法獲取配置等
  • 上傳文件的驗證

位置:vendor/topthink/think-validate/src/Validate.php
例如:方法fileSize驗證文件大小(字節數),方法image驗證文件寬高和類型(可以是數組或者逗號分割)等
使用示例: validate(['image'=>'fileSize:10240|fileExt:jpg|image:200,200,jpg'])

????????????->check($files);

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/911769.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/911769.shtml
英文地址,請注明出處:http://en.pswp.cn/news/911769.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

【商業分析】價值流圖應用案例:服務器硬件生產

在當今競爭激烈的市場環境下&#xff0c;服務器硬件制造商面臨著諸多挑戰。本文中&#xff0c;田辛老師將深入探討價值流圖&#xff08;VSM&#xff09;在某服務器硬件生產中的應用案例&#xff0c;展示其如何助力企業實現降本增效。 一、價值流圖概述 &#xff08;一&#x…

系統性能優化-4 磁盤

系統性能優化-4 磁盤 磁盤作為計算機中速度最慢的硬件之一&#xff0c;常常是系統的性能瓶頸&#xff0c;優化磁盤一般能得到明顯的提升~ 文章以如何高效的傳輸文件來討論針對磁盤的優化技術&#xff0c;如零拷貝、直接 IO、異步 IO等。 最簡單的網絡傳輸 最簡單的方式的當然…

Windows注冊HTTP服務實現Jenkins Allure報告、測試日志永久訪問

使用 NSSM (Non-Sucking Service Manager) 將 Allure 報告的 HTTP 服務注冊為 Windows 后臺服務的詳細操作攻略&#xff0c;確保 Jenkins 測試結果可以長期通過 URL 訪問。 ? 目標 將 allure generate 生成的報告目錄托管為靜態網頁服務&#xff0c;并作為后臺服務運行&#…

從ADI與AMD的專利訴訟,看高端FPGA的巔峰對決

RFSoC,作為FPGA家族中的“貴族”,高端芯片中的尖端代表,技術積累要求高、利潤厚,售價貴,主要面向不差錢的軍用雷達處理、通信和測試/測量儀器用戶。 2019年,模擬芯片龍頭ADI公司,發起專利侵權訴訟,而嘗到甜頭的賽靈思,一邊反訴,一邊揶揄ADI公司:愛哭的娃未必有奶吃…

性能測試-jmeter實戰3

課程&#xff1a;B站大學 記錄軟件測試-性能測試學習歷程、掌握前端性能測試、后端性能測試、服務端性能測試的你才是一個專業的軟件測試工程師 性能測試-jmeter實戰3 負載測試穩定性測試負載測試曲線圖其他測試策略并發測試壓力測試容量測試 性能指標的介紹響應時間并發用戶數…

Maven鏡像

在 Maven 中配置多個鏡像源&#xff0c;主要是為了解決依賴包在不同地區下載速度不同的問題&#xff0c;或者為了使用特定的私有倉庫作為依賴源。Maven 支持在 pom.xml 文件中配置多個鏡像源&#xff08;repositories&#xff09;&#xff0c;也可以在 Maven 的全局配置文件 se…

ArduPilot 教程(2):運行第一個 SITL 無人機仿真

目錄 1. MAVLink 通信協議 2. MAVProxy 地面控制站 3. 運行 SITL 無人機仿真 3.1. 使用 MAVProxy 控制無人機 3.2. 使用 SITL 地圖界面控制無人機 4. MAVProxy 常用命令 5. 其它地面控制站 5.1. QGroundControl 5.2. MissionPlanner 5.3. 不啟用 MAVProxy 6. 本講小…

開源AI大模型驅動下視頻媒介對圖文生態的重構與S2B2C商業場景創新——基于AI智能名片與商城小程序源碼的實踐分析

摘要&#xff1a;數字媒介演進的進程中&#xff0c;視頻對圖片及文字的媒介侵蝕效應正呈現加速態勢&#xff0c;尤其在Z世代及新網民群體中&#xff0c;視頻已成為其觸網的首要信息載體。本文基于媒介技術迭代與商業場景融合的雙重視角&#xff0c;探究開源AI大模型如何通過智能…

Kafka線上集群部署方案:從環境選型到資源規劃思考

在分布式消息系統的落地應用中&#xff0c;Kafka集群的線上部署方案直接關系到業務系統的穩定性與性能表現。不同于測試環境的簡易搭建&#xff0c;生產級集群需要從操作系統適配、存儲介質選型、容量規劃到網絡資源調度等多維度進行系統性設計。本文將從工程實踐角度&#xff…

算法第40天|買賣股票的最佳時機 1 2 3

121. 買賣股票的最佳時機 題目 思路與解法 記錄每一天買或不買時的價值 class Solution { public:int maxProfit(vector<int>& prices) {// dp數組含義&#xff1a;// dp[i][0]:第i天&#xff0c;持有股票時的最大價值&#xff0c;dp[i][1]:第i天&#xff0c;不持…

【趙渝強老師】使用select...into outfile語句備份MySQL

MySQL可以使用select…into outfile語句將表的內容導出為一個文本文件。其基本的語法格式如下&#xff1a; select [列名] from 表名 [WHERE 語句] into outfile 目標文件 [其他選項];該語句分為兩個部分。前半部分是一個普通的select語句&#xff0c;通過這個select語句來查詢…

PHY XGE 自協商AN數據交互過程

在裸機環境下&#xff0c;兩個 **支持 10GBASE-T** 的 PHY 芯片通過 Clause 73 協議完成自協商&#xff08;Auto-Negotiation&#xff0c;AN&#xff09;&#xff0c;它們在 **無操作系統控制** 的條件下&#xff0c;完成以下 **完整的點對點數據交互流程**&#xff1a; --- ##…

【算法 day09】LeetCode 232.用棧實現隊列 | 225. 用隊列實現棧 | 20. 有效的括號 |1047. 刪除字符串中的所有相鄰重復項

232.用棧實現隊列 題目鏈接 | 文檔講解 |視頻講解 : 鏈接 1.思路&#xff1a; 使用2個棧去實現隊列 先將元素放入棧1中&#xff0c;然后在將棧1中的元素出棧到棧2中&#xff0c;棧2的元素出棧順序就和隊列的出隊一樣 2.代碼&#xff1a; class MyQueue {Stack<Integer…

大模型項目實戰:業務場景和解決方案

你的這張圖已經涵蓋了很多主流的大模型實戰項目&#xff0c;非常全面&#xff01;下面我會補充更多市面上常見的AI大模型實戰項目&#xff0c;并且簡要說明每個項目的核心內容、實現思路和主流技術棧&#xff0c;方便你參考和擴展。 1. 智能問答/知識庫系統 核心內容&#xff…

vscode + Jlink 一鍵調試stm32 單片機程序(windows系統版)

vscode Jlink 一鍵調試stm32 單片機程序 安裝交叉編譯工具鏈安裝 x-pack 構建工具安裝 JLink 工具gnu-debuger 插件編譯一鍵啟動調試 安裝交叉編譯工具鏈 stm32采用 交叉編譯工具鏈 arm-none-eabi-xxx, 下載之后解壓&#xff0c;壓縮包內部結構如下圖&#xff1a; 目錄下的bi…

Linux線程概念和控制

Linux線程概念 Linux中線程如何理解 線程<執行流<進程 Linux中的線程模擬進程實現&#xff08;線程就是輕量級進程&#xff09; 與獨立的進程相比&#xff0c;線程創建和銷毀的開銷較小&#xff0c;因為它們共享相同的內存空間和資源。 線程是進程內的執行分支&…

服務器出現問題,連接服務器出現3680 并刪除數據庫出現1192,請查看詳細問題(運維)

mysql連接服務器時&#xff0c;出現這個問題&#xff1a;3680 - Failed to create schema directory xxxx (errno: 28 - No space left on device) 第一步&#xff1a;診斷問題類型 檢查磁盤空間 運行以下命令&#xff1a; bash df -h # 查看磁盤使用情況 如果輸出中 Use% 接…

uniapp:微信小程序膠囊「復制鏈接」灰色處理

在原生開發的小程序中默認是支持復制的 &#x1f424; 但是在 uniapp 開發的小程序中無法復制&#xff08;體驗版與開發版都可以進行復制&#xff0c;但發布后不可&#xff09; 解決方法&#xff1a; methods: {onShareAppMessage: function() {// return custom share data …

差分數組c++

溫度波動記錄 每天記錄溫度&#xff0c;支持區間溫度調整和單日查詢 輸入&#xff1a; 第一行&#xff1a;一個整數n表示有n個溫度 第二行&#xff1a;n個數表示具體溫度 第三行&#xff1a;三個整數&#xff1a;S&#xff0c;e&#xff0c;c&#xff0c;表示從…

Vue.js 列表過濾實現詳解(watch和computed實現)

Vue.js 列表過濾實現詳解 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta http-equiv"X-UA-Compatible" content"IEedge"><meta name"viewport" content"widthd…