проблема с перемещением загруженного файла в php - PullRequest
0 голосов
/ 12 марта 2020

Я делаю инструмент для сжатия изображений, чтобы сжать размер изображения

, для этого я сделал код, который указан ниже

<?php
$name  = '';
$type  = '';
$size  = '';
$error = '';
function compress_image($source_url, $destination_url, $quality)
{
    $info = getimagesize($source_url);
    if ($info['mime'] == 'image/jpeg') {
        $image = imagecreatefromjpeg($source_url);
        imagejpeg($image, $destination_url, $quality);
    } elseif ($info['mime'] == 'image/gif') {
        $image = imagecreatefromgif($source_url);
        imagegif($image, $destination_url, $quality);
    } elseif ($info['mime'] == 'image/png') {
        $image = imagecreatefrompng($source_url);
        imagepng($image, $destination_url, 5);
    }
    return $destination_url;
}
if ($_FILES["file"]["error"] > 0) {
    $error = $_FILES["file"]["error"];
} else if (($_FILES["file"]["type"] == "image/gif") || ($_FILES["file"]["type"] == "image/jpeg") || ($_FILES["file"]["type"] == "image/png") || ($_FILES["file"]["type"] == "image/pjpeg")) {
    $url       = $_FILES["file"]["name"];
    $temp_file = $_FILES["file"]["tmp_name"];
    $filename  = compress_image($temp_file, $url, 80);
    rename($filename, 'https://example.com/wp-content/themes/twentytwenty/templates/images/' . $filename);
    $location = "https://example.com/wp-content/themes/twentytwenty/templates/images/" . $url;
    /*$image_size = getimagesize($location);*/
    echo 'https://example.com/wp-content/themes/twentytwenty/templates/images/' . $filename; die();
} else {
    $error = "Uploaded image should be jpg or gif or png";
}

, но моя проблема с файлом не может быть перемещена в папке с изображениями она создается только в https://example.com/wp-content/themes/twentytwenty/templates/

Я не знаю, почему это проблема

Кто-нибудь может мне помочь с этим

1 Ответ

1 голос
/ 12 марта 2020

Вы должны использовать локальный путь в rename(), а не URL. Вы можете использовать $_SERVER['DOCUMENT_ROOT'] для получения root вашего веб-сайта.

rename($filename, $_SERVER['DOCUMENT_ROOT'] . '/wp-content/themes/twentytwenty/templates/images/' . $filename);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...