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