簡體   English   中英

如何從Symfony3中的文件變量獲取路徑

[英]How to get path from file variable in Symfony3

我正在使用Symfony3的網站上,您可以為個人資料上傳圖片。 但是我想檢查圖像是否真的是圖像,文件是否小於2MB。

輸入元素已經具有accept='image/*'屬性,因此它僅是服務器方面的問題。

這是我用來檢查圖像是否真正小於2MB的代碼:

if(getimagesize($user->getAvatarFile()) !== false) {
    if ($organisation->getAvatarFile()->getSize() > 2000000){
        $this->addFlash('error', "Image too large!");
    }
} else {
    $this->addFlash('error', "File is not an image!");
}

用戶的avatarFile實際上是該文件,但是如何獲取它的路徑,以便可以使用getimagesize

先感謝您。

您應該檢查有關File的symfony文檔(與mimeType相同,與Image相同)。

有一些限制,例如maxSize ,可能很有用。

use Symfony\Component\Validator\Constraints as Assert;

class User
{
    /**
     * @Assert\Image(
     *     maxSize = "2M",
     *     maxSizeMessage= "The file is too large ({{ size }} {{ suffix }}). Allowed maximum size is {{ limit }} {{ suffix }}."
     * )
     */
    protected $AvatarFile;
}

編輯:如果只想獲取文件路徑,則在移動它之前,可以使用getClientOriginalName函數。 請注意,它不會返回您期望的完整文件路徑,因為在上載時,文件在/ tmp目錄中被重命名,然后被移動(並在需要時進行重命名)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM