簡體   English   中英

PHP在上傳前調整圖像大小

[英]PHP resize image before uploading

我正在建立一個網站,管理員可以在其中上傳圖片。 如果圖像大於2MB,它將由於限制而失敗。 但是,即使沒有限制,由於訪問者的加載時間,調整圖像的大小還是更好。

圖片的寬度絕不能超過800像素,高度無關緊要,因為它永遠不會大。 我現在想做的是調整圖像大小,以便寬度等於或小於800px,高度按相同比例調整。

我現在所擁有的是:

if (!empty($_FILES)) 
{
    $upload_dir = 'photos';
    $tempFile = $_FILES['file']['tmp_name'];

    $targetPath = dirname( __FILE__ ) . DIRECTORY_SEPARATOR . $upload_dir . DIRECTORY_SEPARATOR;
    $mainFile = $targetPath . time() . '-' . $_FILES['file']['name'];

    list($w, $h) = getimagesize($tempFile);
    if ($w > 800) 
    {   
        $ratio = 800 / $w;
        $newHeight = $ratio * $h;

        $tempFile = imagescale($tempFile, 800);
    }

    move_uploaded_file($tempFile, $mainFile);
}

但這什么也沒做。

我正在將此腳本用作dropzone作為圖像輸入的目標。

有人可以指出我正確的方向嗎? 還是在$_FILES PHP已經嘗試上傳圖像? 如果是這樣,我不知道如何解決。 然后, dropzone調用此腳本之前 ,應調整其大小。

擁有$ _FILES后,映像已在服務器上。 您可以使用canvas元素在客戶端HTML5中調整其大小。

嘗試閱讀以下內容:

https://hacks.mozilla.org/2011/01/how-to-develop-a-html5-image-uploader/

我建議使用WideImage 然后,您可以像這樣使用resize()

WideImage::load('big.png')->resize(50, 30)->saveToFile('small.jpg');

暫無
暫無

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

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