黑马lavarel教程---7、文件上传
黑馬lavarel教程---7、文件上傳
一、總結
一句話總結:
在laravel里面實現文件的上傳是很簡單的,壓根不用引入第三方的類庫,作者把上傳作為一個簡單的http請求看待的。
?
1、在lavarel中作者把文件上傳看做什么?
一個簡單的http請求
在laravel里面實現文件的上傳是很簡單的,壓根不用引入第三方的類庫,作者把上傳作為一個簡單的http請求看待的。
?
2、要想表單能夠上傳(此處不考慮異步方式),則表單應該具備哪些要求?
a. 具有form標簽,method必須為post,必須具備enctype屬性;
b. 至少有一個input類型為file類型; 得具備一個提交按鈕;
?
3、lavarel文件上傳錯誤狀態碼error的取值?
0-7,但是沒有5,0表示成功。
?
4、文件上傳的本質(核心思想)?
文件的移動,move_upload_file
?
5、文件上傳步驟?
a. 先去判斷文件是否正常和存在
b. 獲取相關的信息(可選)
c. 保存文件(其實就是移動文件到新的目錄)
?
6、關于項目中使用路徑的說明?
如果路徑是給php代碼使用的,則路徑建議使用“./”形式;如果路徑是給瀏覽器使用的則建議使用“/”形式。
?
?
7、獲取文件上傳錯誤提示的代碼示例?
$request -> file(‘avatar’) -> getErrorMessage();
?
?
?
二、文件上傳
在laravel里面實現文件的上傳是很簡單的,壓根不用引入第三方的類庫,作者把上傳作為一個簡單的http請求看待的。使用時可以參考手冊。
?
(1)修改表結構,添加一個字段。
ALTER TABLE `member`
ADD COLUMN `avatar`? varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL AFTER `email`;
?
?
?
?
(2)創建添加數據的表單和路由
添加路由:/home/test/test14
?
?
?
?
創建展示視圖的方法并且展示視圖
?
?
?
?
創建視圖頁面并且添加csrf_token
回顧:要想表單能夠上傳(此處不考慮異步方式),則表單應該具備哪些要求?
答:
?????? a. 具有form標簽,method必須為post,必須具備enctype屬性;
?????? b. 至少有一個input類型為file類型;
?????? c. 得具備一個提交按鈕;
?
?
?
?
(3)在控制器中,添加上傳業務處理邏輯
【此處操作建議查看手冊】??
?
?
?
關于上傳錯誤狀態碼error的取值:0-7,但是沒有5,0表示成功。
?
問題:請你說出文件上傳的本質(核心思想)?文件的移動,move_upload_file
?
?
?
?
更多的方法請訪問:
http://api.symfony.com/3.0/Symfony/Component/HttpFoundation/File/UploadedFile.html
?
思路:
???????? a. 先去判斷文件是否正常和存在
???????? b. 獲取相關的信息(可選)
???????? c. 保存文件(其實就是移動文件到新的目錄)
?
獲取文件的方式:既可以通過file方法來獲取也可以通過動態屬性來獲取,二選一。
?
(4)創建上傳文件的保存路徑
?
?
?
?
?
?
?
?
關于項目中使用路徑的說明:
如果路徑是給php代碼使用的,則路徑建議使用“./”形式;如果路徑是給瀏覽器使用的則建議使用“/”形式。
?
為了保存的文件不被覆蓋,建議在保存文件的同時對文件名進行盡量唯一的重命名:
?
?
?
?
(5)注意:如果使用的是create方法添加數據到數據表中,則這里還要修改一下模型里面的一個fillable屬性,代表允許插入到數據庫的字段
?
?
?
?
將數據寫入數據表:
?
?
?
數據表的結果:
?
?
?
?
如果上傳出現了錯誤,一定要使用獲取錯誤信息的方法:
?
?
?
$request -> file(‘avatar’) -> getErrorMessage();
?
?
?
?
?
?
?
?
轉載于:https://www.cnblogs.com/Renyi-Fan/p/11561249.html
《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀總結
以上是生活随笔為你收集整理的黑马lavarel教程---7、文件上传的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 后盾网lavarel视频项目---4、l
- 下一篇: b站编程课程资源汇总