2016-10-24 5 views
0

Я пытаюсь, чтобы файл PHP добавлял идентификатор к загруженному изображению и сохранял изображение. По какой-то причине приведенный ниже код не работает, хотя он очень похож на другие примеры, которые я нашел в Интернете. Что я делаю не так?PHP Добавить текст в текст и сохранить

$productStyle = isset($_POST['productStyle']) ? encodechars($_POST['productStyle']) : ""; 
    $productSize = isset($_POST['productSize']) ? encodechars($_POST['productSize']) : ""; 
    $itemID = isset($_POST['itemID']) ? encodechars($_POST['itemID']) : ""; 

    if ($productStyle!=""){ 
     $fileLocation ='/home/abcdefg/public_html/uploads/'.$productStyle; 
     $photoLoc = $fileLocation . "/" . $itemID.".png"; 
     if(!is_dir($fileLocation)) { 
      mkdir($fileLocation , 0777); //create directory if it doesn't exist 
     } 

     //add id to image 
     $im = imagecreatefrompng($_FILES["file"]["tmp_name"]); 
     $font = 'Verdana.ttf'; //<-- this file is included in directory 
     $grey = imagecolorallocate($im, 128, 128, 128); 
     imagettftext($im, 10, 0, 11, 20, $grey, $font, $itemID); 

     imagepng($im, $photoLoc); //<-- This does not work 
     imagedestroy($im); 

     //move_uploaded_file($_FILES["file"]["tmp_name"], $photoLoc); //<-- This will move the file to the correct folder but without the text added 

    } 
+0

Вы проверили журналы ошибок? –

+1

Ошибка проверки ошибок. Вы предполагаете, что каталог существует, и файл доступен для записи ... –

+0

@HalfCrazed Команда move_upload_file работает, которая указывает на то же расположение $ photLoc, поэтому я предположил, что это не проблема разрешения. – Nate23VT

ответ

1

сперва перемещение оригинального файла и удалите его после маркировки водой.

$productStyle = isset($_POST['productStyle']) ? encodechars($_POST['productStyle']) : ""; 
$productSize = isset($_POST['productSize']) ? encodechars($_POST['productSize']) : ""; 
$itemID = isset($_POST['itemID']) ? encodechars($_POST['itemID']) : ""; 

if ($productStyle!=""){ 
    $fileLocation ='/home/abcdefg/public_html/uploads/'.$productStyle; 
    $photoLoc = $fileLocation . "/" . $_FILES["file"]["name"]; 
    move_uploaded_file($_FILES["file"]["tmp_name"], $_FILES["file"]["name"]); 
    if(!is_dir($fileLocation)) { 
     mkdir($fileLocation , 0777); //create directory if it doesn't exist 
    } 

    //add id to image 
    $im = imagecreatefrompng($photoLoc); 
    $font = 'Verdana.ttf'; //<-- this file is included in directory 
    $grey = imagecolorallocate($im, 128, 128, 128); 
    imagettftext($im, 10, 0, 11, 20, $grey, $font, $itemID); 

    imagepng($im, $photoLoc); //<-- This does not work 
    imagedestroy($im); 
    unlink($photoLoc); 
    //move_uploaded_file($_FILES["file"]["tmp_name"], $photoLoc); //<-- This will move the file to the correct folder but without the text added 

} 

или просто изменить

$im = imagecreatefrompng($_FILES["file"]["tmp_name"]); 

в

$im = imagecreatefrompng($_FILES["file"]["name"]); 
Смежные вопросы