當前位置:首頁 » 文件傳輸 » laravel上傳
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

laravel上傳

發布時間: 2022-03-06 01:58:57

Ⅰ laravel框架中怎麼實現多文件上傳

一、使用工具:laravel、軟體編寫程序
二、方法步驟:
1、配置本地文件系統
讓我們從配置開始吧,我們在 public 目錄下創建一個 uploads 目錄用來存放上傳的文件,這樣所有上傳文件都可以通過瀏覽器直接訪問
首先我們在博客項目目錄下使用如下命令在 public 目錄下創建 uploads 子目錄:

很簡單。接下來我們來編輯 config/blog.php:

我們在 uploads 配置項中使用 storage 定義使用的文件系統,使用 webpath 定義 web 訪問根目錄。
最後,編輯 config/filesystems.php 如下:

2、創建幫助函數文件
在 Laravel 5.1 項目中有時我們會需要一些不依賴於類的輔助函數,通常我們會將這些輔助函數定義在一個單獨文件如 helpers.php 中。我們在 app 目錄下創建這個名為 helpers.php 的文件,並編輯其內容如下:

其中 human_filesize() 函數返回一個易讀的文件尺寸,is_image() 函數在文件類型為圖片的時候返回 true。
要讓應用能夠正確找到 helpers.php 文件,還要修改項目根目錄下的 composer.json:
在 autoload 配置項的 files 數組中指定要被載入的文件/文件夾。修改完成後記得運行 composer mpauto 確保修改生效:

現在 helpers.php 中的所有函數都會載入到自動載入器中,你可以在博客應用的代碼中任意使用其中的函數。
3、創建文件上傳管理服務
現在基本配置已經完成了,讓我們創建一個服務類來管理上傳文件。
檢測文件 MIME 類型
我們想要基於不同類型的上傳文件進行不同的操作,這可以通過檢測上傳文件 MIME 類型輕松實現。
PHP 有一個內置函數 mime_content_type() 用於檢測文件的MIME類型,但是該函數已經廢棄了,我們使用另一個解決方案。
在 Packagist 中搜索 「mime」 會查詢到一個名為 dflydev 的包,我們在博客項目中使用 Composer 安裝該依賴包:
我們將使用該依賴包提供的方法來檢測文件的 MIME 類型。
創建UploadsManager類
在 app/Services 目錄下創建 UploadsManager.php,編輯其內容如下:

4、實現文件上傳管理列表
現在 UploadsManager 服務類已經創建,接下來我們來實現控制器的 index 方法。
創建 index 方法
編輯 app/Http/Controllers/Admin 目錄下的 UploadController.php 文件內容如下:
構造方法中注入了 UploadsManager 依賴,在 index() 方法中只需傳入 folderInfo() 返回的數據到要渲染的視圖並返回即可。
你可能已經注意到 $folder 從請求中獲取,是的,我們只需要通過請求參數即可實現文件夾修改。
創建 index 視圖
在 resources/views/admin 目錄下新建 upload 目錄,並在該目錄下創建 index.blade.php 文件,編輯該文件內容如下:

盡管這個模板文件很長,但是理解起來並沒有什麼困難,所有文件上傳和下載管理都將在這里進行。
有沒有注意到我們在最後包含了 admin.upload._modals?是的,我們將模態對話框放到了一個單獨的視圖模板中。現在,我們在 resources/views/admin/upload 目錄下創建一個空的 _modals.blade.php 文件。
上傳管理界面
打開瀏覽器,進入博客應用後台管理頁面,點擊頂部導航條的「上傳」(Uploads)鏈接,將會跳轉到如下頁面:
既漂亮又清爽,有木有?接下來讓我們來實現所有的模態對話框及其背後的業務邏輯。
5、完成文件上傳管理功能
對於完整的文件上傳管理器而言剩下的工作已經不多了,現在是時候完成所有功能了。
添加路由
我們需要為上傳管理器定義所有需要的路由,編輯 app/Http/routes.php 添加如下路由:
定義所有模態對話框
編輯我們之前創建的 _modals.blade.php 文件內容如下:

在該文件中總共有5個不同的模態彈出框,分別對應上面定義的5個路由。
添加表單請求驗證類
使用 Artisan 命令創建 UploadFileRequest,並編輯其內容如下:
使用 Artisan 命令創建 UploadNewFolderRequest,並編輯其內容如下:

同樣,這些請求類用於驗證表單輸入。
完成 UploadController 所有方法
編輯 UploadController.php 文件內容如下:

完成 UploadsManager 服務類
最後編輯 app/Services/UploadsManager.php 內容如下:

至此,已經完成了文件上傳管理的所有工作我們將本地存儲的根目錄修改為前面創建的 public/uploads 目錄。

Ⅱ 如何把用laravel5.4寫好的網站架構到遠程虛擬機上

第一步:把public文件夾內的所有文件放到根目錄下。

第二步:打開index.php 文件,修改22和36行的代碼require __DIR__.'/../bootstrap/autoload.php'; 和 $app = require_once __DIR__.'/../bootstrap/app.php'; 為require __DIR__.'/bootstrap/autoload.php'; $app = require_once __DIR__.'/bootstrap/app.php';

第三步:打開server.php文件,修改17行和21行的代碼$uri !== '/' && file_exists(__DIR__.'/public'.$uri);和require_once __DIR__.'/public/index.php'; 為 $uri !== '/' && file_exists(__DIR__.''.$uri);require_once __DIR__.'/index.php';

第四步:打開.env文件夾,修改第六行的APP_URL=http://localhost 為 APP_URL=http://<你的域名>;

第五步:打開你購買的虛擬主機管理界面,把php版本號改為5.6或5.6以上。(我在第二次發布系統到虛擬機上的時候,從7.0變成5.6才成功運行。第一次發布的時候我是把版本從5.2升級到5.6)

最後一步:將所有的文件用ftp傳到你的虛擬主機上。(我在這里刪除了一些大文件,刪不刪無所謂,只是例如node moles 這個文件太大,上傳上去也沒有意義,在自己電腦上開發那麼這個文件可刪不得哦)。

到此為止,你的網站應該就可以在外網上被人訪問了!希望你們不會出現任何BUG哦!

Ⅲ PHP laravel 如圖,這行回傳代碼是什麼意思

這個代碼的意思是返回到上一個頁面,同時把信息寫入到session里這個代碼的意思是返回到上一個頁面,同時把信息寫入到session里這個代碼的意思是返回到上一個頁面,同時把信息寫入到session里

Ⅳ 有人部署過 Laravel 嗎

laravel 部署到萬網的虛擬主機上:
改變一下Laravel的文件目錄結構,為應用選擇低位的加密方式,就可以在萬網雲虛擬主機上成功運行。
拿laravel5.1來說:

在根目錄下創建一個local文件夾,把網站根目錄下除了public文件夾以外所有文件及文件夾復制到local文件夾中
然後把public文件夾下的所有文件復制到網站根目錄,接著刪除public文件夾,這樣入口就變成根目錄而不是public了
打開根目錄下的index.php(之前/public/index.php)

require __DIR__.'/../bootstrap/autoload.php';
修改為
require __DIR__.'/local/bootstrap/autoload.php';

$app = require_once __DIR__.'/../bootstrap/app.php';
修改為
$app = require_once __DIR__.'/local/bootstrap/app.php';
打開/local/config/app.php(之前的/config/app.php)

'key' => env('APP_KEY', 'SomeRandomString'),
'cipher' => 'AES-256-CBC',
改為
'key' => env('APP_KEY', '1234567890qwerty'),
'cipher' => 'AES-128-CBC',
其中key使用長度為16的隨機字元串,由於萬網不支持'AES-256-CBC'所以用128位加密就可以了,128用16個隨機字元串做key,256用32個。
上傳到萬網虛擬主機,然後再後台把PHP版本改成5.5就可以了,妥妥的就運行成功laravel了。

Ⅳ laravel的文件上傳可以上傳視頻嗎

絕對可以啊~你看文檔,有詳細說明。

Ⅵ laravel中where function 中參數怎麼傳

$person = DB::table('persons')->where('id',$id)->get(); 這句其實是從 Builder 對象中取回一個 Collection 對象,而該 Collection 對象中包含了 Person 對象。Collection 實現了數組相關的介面,所以也可以使用訪問數組的方式獲取 Person 對...

Ⅶ laravel怎麼修改上傳文件的臨時保存路徑啊 原本是storage\app

上傳文件的臨時保存路徑是在php.ini中設置的,如
upload_tmp_dir = "e:/wamp/tmp"
各種開發框架或開源產品中需要修改的是上傳文件的最終保存地址。

Ⅷ laravel框架怎樣將數據從模板傳到控制器的

表單提交,提交到控制器就行,route也要寫相應的路由
//view:
{{ Form::open(array('action' => 'LoginController@check')) }} //提交到LoginController里check方法
<input name="id">.......
<input>.......//和正常表單一樣
{{ Form::close() }}
//controller:
$name= Input::get('id');
//route:
Route::post('article','LoginController@check');//提交後的路由是article
把laravel文檔看一遍吧

Ⅸ laravel 怎麼限制上傳文件大小

本地和線上都是nginx,先配好rewrite規則(就是把.htaccess裡面的規則原樣翻譯到nginx.conf裡面去)
伺服器上,我是直接導sql, 畢竟我還不習慣用php命令去創建資料庫,當然了,這個見仁見智了,laravel的遷移功能是很強大的,在同步本地和線上資料庫方面,實在是簡單之至,若你用它的遷移功能操作的話,畢竟只是寫個php腳本,傳到伺服器再執行一下就行了,都不用在伺服器登錄mysql客戶端去操作了.
vender 的是在伺服器上當然要用 composer 安裝了, 一來vendor太大,用直接上傳或者ftp都太慢,二來,用composer的話,可以獲得laravel本身以及vendor裡面各組件的最新穩定版本.

我是目前還沒在伺服器上用 artisan, 只用 composer 進行整個框架的安裝,php composer install laravel/laravel 之後, 再把本地的app和public上傳覆蓋, 就可以運行了(記得配置根目錄指向public目錄,不然還得自己配置路徑)
1. 記得 chmod -R 777 app/storage , 不給這個目錄寫許可權, 是運行不了的
2. 記得在線上版的app/config/app.php 裡面, 使用一個32位隨機的 KEY, 然後將 debug 改為false, 不然任何錯誤都會直接顯示出來, 太不安全了

Ⅹ laravel5 提交 git storage 需不需要提交

1、創建SAE應用首先進入新浪雲SAE界面/laravelsae/,接下來我們就可以按照部署說明上傳代碼到SAE。2、上傳Laravel項目代碼到SAE這里我們選擇Github上一個現成的項目laravel5-on-sae,該項目針對SAE對Laravel5.1代碼做了特定修改,我們下載其項目包並解壓到本地。進入解壓後的laravel5-on-sae目錄,刪除隱藏的文件夾.git,新建一個config.yaml,編輯其內容如下:handle:-rewrite:if(path~"^/$")goto"public/index.php"-rewrite:if(!is_dir()&&!is_file()&&path~"^(.*)$")goto"public/index.php/$1"編輯.gitignore文件,移除第一行/vendor(否則使用Git命令忽略該目錄,導致找不到/vendor/autoload.php而報錯)。編輯config/app.php,移除providers數組中的如下這行:App\Providers\ViewComponentServiceProvider::class,編輯app/Providers/EventServiceProvider.php內容如下:get();dd($posts);}}然後提交該代碼到SAE項目:gitadd.gitcommit-m'test'gitpushsaemaster:1在瀏覽器中訪問/database/test