PHP Laravel上傳檔案

2021-08-16 09:23:39 字數 2047 閱讀 2298

lang="en">

charset="utf-8">

documenttitle>

head>

action="/upload"

method="post"

enctype="multipart/form-data">

}photo:

type="file"

name="img"

id="">

p>

type="submit"

value="提交">

p>

form>

body>

html>

你可以使用illuminate\http\request例項中的file方法獲取上傳的檔案。file方法返回的物件是symfony\component\httpfoundation\file\uploadedfile類的例項,該類繼承了phpsplfileinfo類,並提供了許多和檔案互動的方法:

$file

=$request

->file('photo');

$file

=$request

->photo;

你可以使用請求的hasfile方法確認上傳的檔案是否存在:

if ($request

->hasfile('photo'))

除了檢查上傳的檔案是否存在外,你也可以通過isvalid方法驗證上傳的檔案是否有效:

if

($request->file('photo')->isvalid())

uploadedfile這個類也包含了訪問檔案完整路徑和擴充套件的方法。extension方法會嘗試根據檔案內容猜測檔案的副檔名。猜測結果可能不同於客戶端原始的副檔名:

$path

=$request

->photo->path();

$extension

=$request

->photo->extension();

uploadedfile的例項還有許多可用的方法,可以到 該物件的 api 文件 了解這些方法的詳細資訊。

在設定好 檔案系統 的配置資訊後,你可以使用uploadedfilestore方法把上傳檔案儲存到本地磁碟,或者是亞馬遜 s3 雲儲存上。

store方法允許儲存檔案到相對於檔案系統根目錄配置的路徑。這個路徑不能包含檔名,名稱將使用 md5 雜湊檔案內容自動生成。

store方法還接受乙個可選的第二個引數,用於檔案儲存到磁碟的名稱。這個方法會返回檔案相對於磁碟根目錄的路徑:

$path

=$request

->photo->store('images');

$path

=$request

->photo->store('images', 's3');

如果你不想自動生成檔名,那麼可以使用storeas方法去設定路徑,檔名和磁碟名作為方法引數:

->photo->storeas('images', 'filename.jpg', 's3');

// 檔案上傳處理

public function upload(request $request)else

}

php laravel框架下通過jsonp跨域訪問

同一網域名稱下的引數傳遞是很容易實現的,但是跨域就存在一定的限制。當然可以搜到很多介紹的帖子,在這裡我對jsonp這種單向跨域的方式進行總結,並附上乙個小例子。問題描述 由於在伺服器上開發,用不用的埠號來區分不同的專案。實現192.168.1.10 8888可以呼叫8889專案上的引數。源於單點登入...

PHP Laravel開發 三 開發思路

上面我們分析了專案需求,本節中,做簡單的專案開發計畫。基於需求分析,我們將系統拆分成極大模組 使用者模組 無依賴 商品模組 無依賴 訂單模組 依賴使用者 訂單模組 支付模組 依賴訂單模組 優惠券模組 依賴訂單模組 我們優先開發無依賴的模組。所以我們各個模組開發的順序如下 使用者模組 商品模組 訂單模...

php mysql上傳檔案 PHP 檔案上傳

通過 php,可以把檔案上傳到伺服器。建立乙個檔案上傳表單 允許使用者從表單上傳檔案是非常有用的。請看下面這個供上傳檔案的 html 表單 芝麻教程 web3.xin 檔名 將以上 儲存到 form.html 檔案中。有關上面的 html 表單的一些注意項列舉如下 標籤的 enctype 屬性規定了...