За последние 24 часа нас посетили 29402 программиста и 1761 робот. Сейчас ищут 979 программистов ...

Скрипт загрузки фото с изменением размеров. Не работает

Тема в разделе "PHP для новичков", создана пользователем Econaft, 25 авг 2015.

  1. Econaft

    Econaft Активный пользователь

    С нами с:
    28 июн 2014
    Сообщения:
    89
    Симпатии:
    1
    Нашёл два скрипта. Один загружает изображение, другой уменьшает изображение. Совместил их в один. Но не работает.

    В чём пожет быть проблема? Ошибки не выдаются. Но не загружается.

    Код (PHP):
    1. //////////////////////////картинка//////////////
    2. function createphoto ($input,$output) {
    3.  $w = 400;  // мы получим  пропорциональное изображение шириной 400px
    4.  $q = 100;  // качество jpeg по умолчанию
    5.  
    6. $f=$input;
    7.  $src = imagecreatefromjpeg($f);
    8. // функция imagecreatefromjpeg создает изображение JPEG из файла
    9.  // т.е. создаём исходное изображение на основе исходного файла и определяем его размеры
    10.  
    11. $w_src = imagesx($src);
    12.  $h_src= imagesy($src);
    13. // получение ширины и высоты изображения в пикселях
    14.  
    15. $ratio = $w_src/$w;
    16.  $w_dest = round($w_src/$ratio);
    17.  $h_dest = round($h_src/$ratio);
    18. // получение координат для построения нового изображения необходимой нам ширины
    19.  
    20. $dest = imagecreatetruecolor($w_dest,$h_dest);
    21. // функция  imagecreatetruecolor пустое полноцветное изображение размерами x_size и y_size.
    22.  // Созданное изображение имеет черный фон.
    23.  
    24. imagecopyresized($dest, $src, 0, 0, 0, 0, $w_dest, $h_dest, $w_src, $h_src);
    25. // Функция imagecopyresized копирует прямоугольные области с одного изображения на другое
    26.  
    27. // вывод картинки и очистка памяти
    28.  imagejpeg($dest,$output,$q);
    29.  imagedestroy($dest);
    30.  imagedestroy($src);
    31. }
    32.  
    33. ini_set("display_errors", 1); 
    34. if (sizeof($_FILES)!=0)
    35. {
    36.     $img = $_FILES['filename']['name'];
    37.     $uploadfile = "img/$cont-$img";
    38.     if (createphoto($_FILES['filename']['tmp_name'], $uploadfile))
    39. {
    40.     echo "Изображение загружено - $uploadfile";
    41. }
    42.     else {
    43.         echo "Картинка не добавлена.";
    44.   } }
    45. //////////////////////////картинка//////////////
    46.  
    47. <form method=POST enctype='multipart/form-data'>
    48. Выберите файл: <input type='file' name='filename'/> 
    PHP, JavaScript, SQL и другой код пишите внутри тегов
    Код ( (Unknown Language)):
    1. [b]php][/b]Тут код[b][/[/b][b]code][/b][/color]
     
  2. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    дебаг хоть какой-то есть?)))
     
  3. Econaft

    Econaft Активный пользователь

    С нами с:
    28 июн 2014
    Сообщения:
    89
    Симпатии:
    1
    У меня ничего не ругается. Ошибок нет.

    С функцией move_uploaded_file работает.
    А вот с createphoto уже не хочет.
     
  4. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
  5. Econaft

    Econaft Активный пользователь

    С нами с:
    28 июн 2014
    Сообщения:
    89
    Симпатии:
    1
    Поднял в начало:
    Код (Text):
    1. error_reporting(E_ALL);
    2. ini_set("display_errors", 1);
    Пишет:
    Notice: Undefined variable: return in /home/77/сайт.org/docs/blog/a.php on line 60

    a.php - это файл скрипта.
     
  6. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    60 строчки не существует, переводил на русский с помощью онлайн переводчика, то что тебе пишет PHP?
     
  7. Econaft

    Econaft Активный пользователь

    С нами с:
    28 июн 2014
    Сообщения:
    89
    Симпатии:
    1
    Визуально можете посмотреть скрипт? Там же особо ничего сложного, кто разбирается в PHP,

    Наверняка ошибка - какой-то пустяк.

    Добавлено спустя 56 секунд:
    Сама функция точно рабочая.

    Но вот сама её привязка...
     
  8. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    Но это тебе нужно, я могу лишь помочь, но 60 строки нет, учиться делать debug программы ты не хочешь,
    видимо тут недопонимание, на форуме есть раздел "сделайте за меня", там постараются помочь если это возможно и учить не будут,
    ещё раздел "free-lance" там сделают за деньги.
     
  9. Econaft

    Econaft Активный пользователь

    С нами с:
    28 июн 2014
    Сообщения:
    89
    Симпатии:
    1
    Не нужно ничего делать. Всё уже сделано.

    Есть лишь какой-то недочёт. Об этом я и спрашиваю.
     
  10. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    Ну вот я подсказываю как самостоятельно найти "недочёт", это устраивает или может что-то не понятно?
     
  11. iNEEdhLw

    iNEEdhLw Новичок

    С нами с:
    22 окт 2014
    Сообщения:
    414
    Симпатии:
    0
    в этот разделе тебя наталкивают на мысли, чтобы ты сам дошел до решения проблемы.
    если хочешь, чтобы делали(доделали) ЗА тебя, то denis01 выше написал.
     
  12. Econaft

    Econaft Активный пользователь

    С нами с:
    28 июн 2014
    Сообщения:
    89
    Симпатии:
    1
    Что тут может устроить?
    Что какой-то 60 строчки нету. Почему она вообще должна быть. Её и не должно быть.
     
  13. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    Код (PHP):
    1. $uploadfile = "img/$cont-$img"; 
    какая переменная тут лишняя?

    Notice: Undefined variable: cont in E:\Install\Winginx\nginx177\html\t10.php on line"$uploadfile = "img/$cont-$img";"
     
  14. Econaft

    Econaft Активный пользователь

    С нами с:
    28 июн 2014
    Сообщения:
    89
    Симпатии:
    1
    Попробовал совсем убрать $cont-$img
    Прописал адрес картинки вручную.
    Всё равно пишет:
    Notice: Undefined variable: return in /home/77/сайт.org/docs/blog/a.php on line 60

    Не знаю, неичего там не лишнее. Это $cont-$img название файла картинки.
     
  15. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    чувак. вруби мозг. жмакни Ctrl+F, вбей return и убедись уже наконец что это слово встречается уже дважды в твоем нытье и при этом ни разу в листинге. тебя простят весь код а не тот который ты считаешь нужным опубликовать. есть что скрывать - сиди сам отлаживай. нужна помощь - публикуй так чтоб не трахать мозг другим участникам форума. ок?
     
  16. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    я убрал $cont, картинка загружается, только пишет "Картинка не добавлена"
     
  17. Econaft

    Econaft Активный пользователь

    С нами с:
    28 июн 2014
    Сообщения:
    89
    Симпатии:
    1
    Ganzal Тябя никто не спрашивает. Проходи мимо.
     
  18. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    Econaft так Ganzal дело говорит, нет в скрипте return, похоже, что ты дал не тот скрипт который запускаешь
     
  19. Econaft

    Econaft Активный пользователь

    С нами с:
    28 июн 2014
    Сообщения:
    89
    Симпатии:
    1
    denis01
    Да точно в папке добавилось.
    Значит уже близко.
    Спасибо. Дальше сам.

    Добавлено спустя 3 минуты 28 секунд:
    Да всё работает. И картинку уменьшает функция.
    Ещё раз спасибо. Не подумал посмотреть в папку.
     
  20. Econaft

    Econaft Активный пользователь

    С нами с:
    28 июн 2014
    Сообщения:
    89
    Симпатии:
    1
    Ещё вопрос по этому коду:

    Проблема в том, что если картинка загружается больше лимитного значения 400, то всё ОК - картинка ументшается. Всё прекрасно.
    А вот если картинки загружается меньше этого значения - то она наоборот увеличивается до лимитного значения. И это очень плохо.
    Что нужно добавать к коду, чтобы маленькие картинки не увеличивались до 400?
     
  21. mkramer

    mkramer Суперстар
    Команда форума Модератор

    С нами с:
    20 июн 2012
    Сообщения:
    8.599
    Симпатии:
    1.764
  22. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
  23. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.128
    Симпатии:
    1.248
    Адрес:
    там-сям
    Вечная тема :)
     
  24. Econaft

    Econaft Активный пользователь

    С нами с:
    28 июн 2014
    Сообщения:
    89
    Симпатии:
    1