[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Ошибка работы при загрузке
gagger
Есть скрипт для загрузки и обрезки картинок на хост.
На домашнем хосте все отлично работает, заливаю на сайт, не пашет.
Я предполагаю что это проблема с путем к файлу подскажите, как исправить.

if (empty($_FILES['fupload']['name']))
{
//если переменной не существует (пользователь не отправил изображение),то присваиваем ему заранее приготовленную картинку с надписью "нет аватара"
$avatar = "avatars/net-avatara.jpg"; //можете нарисовать net-avatara.jpg или взять в исходниках
}

else
{

if($_FILES["fupload"]["size"] > 102400)
{
echo ("Размер файла превышает 100 кб");
exit;
}

$w = 338; // Максимальная ширина (высота) конечного файла
$q = 100; // Качество jpeg изображения

$file = $_FILES["fupload"]["name"]; // Записываем содержимое массива
// $_FILES в $file


$src = imagecreatefromjpeg($_FILES["fupload"]["tmp_name"]); // Создаем временный
// файл

$w_src = imagesx($src); // Определяем его линейный размер по горизонтали (ширина)
$h_src = imagesy($src); // Определяем его линейный размер по вертикали (высота)

$dir = "/../../user/profile/avatars/"; // Папка, куда будет записан
// уже преобразованный файл


$path = "$dir$file"; // Полный путь к файлу (включая и его имя)

if ($w_src != $w) // Проверяем не равна ли уже
//исходная ширина необходимой нам

{
if ($w_src > $h_src) // Если изображение горизонтальное
{
$ratio = $w_src/$w; // Считаем соотношение пропорций
$w_dest = $w; // Конечная ширина будет равна максимальной
$h_dest = round($h_src/$ratio); // Считаем конечную высоту
}
elseif ($h_src > $w_src) // Если изображение вертикальное
{
$ratio = $h_src/$w; // Считаем соотношение пропорций
$h_dest = $w; // Конечная высота будет равна максимальной
$w_dest = round($w_src/$ratio); // Считаем конечную ширину
}
else // Если изображение квадратное
{
$w_dest = $w; // Подставляем максимальные значения
$h_dest = $w;
}
$dest = imagecreatetruecolor($w_dest,$h_dest); // Создаем пустое изображение
imagecopyresampled($dest, $src, 0, 0, 0, 0, $w_dest, $h_dest, $w_src, $h_src);
// Преобразуем исходное изображение в конечное (с новыми размерами).
// Функция использует ресемплинг, поэтому изображение будет лучшего
// качества, чем если использовать вместо imagecopyresampled функцию
// imagecopyresized

}
else
{
$dest = imagecreatefromjpeg($_FILES["image"]["tmp_name"]);
// Если исходная ширина равна нужной нам на выходе, то просто
// создаем временный файл без преобразований

}
if (!file_exists ("$path")) // Проверяем не существует ли уже файл
{
вот здесь ошибка --> $res = imagejpeg($dest,"$path",$q); // Копируем файл в папку
if ($res) // Если скопировано успешно, выдаем сообщение об успехе
{
echo "Файл закачан!";
}
else // Если не скопировано, то выдаем сообщение об ошибке
{
echo "Ошибка записи файла!";
}
imagedestroy($dest); // Освобождаем память
imagedestroy($src);
}




Спустя 5 минут, 35 секунд (11.07.2010 - 02:25) inpost написал(а):
$dir = "/../../user/profile/avatars/"; // Папка, куда будет записан // уже преобразованный файл
Права доступа на ту папку выставлены нормально?

Спустя 8 минут, 37 секунд (11.07.2010 - 02:34) gagger написал(а):
Хм...а какие права должны быть?

Спустя 1 час, 40 минут, 23 секунды (11.07.2010 - 04:14) inpost написал(а):
Если на линуксе хостинг, то менеджером установи права 777 на данную папку, в которую помещаешь изображение

Спустя 49 минут, 45 секунд (11.07.2010 - 05:04) gagger написал(а):
не помогает......

Спустя 3 часа, 35 минут, 45 секунд (11.07.2010 - 08:40) linker написал(а):
Вот это
$dir = "/../../user/profile/avatars/";
означает от корневой папки, т.е. от вершины самого раздела '/', вот так
$dir = "../../user/profile/avatars/";

Спустя 47 минут, 40 секунд (11.07.2010 - 09:27) gagger написал(а):

Warning: imagejpeg() [function.imagejpeg]: Unable to open '../../user/profile/avatars/x_81c44ac1.jpg' for writing in /home/fotomode/public_html/registration/save_user.php on line 164

Та же фигня...

Спустя 44 минуты, 53 секунды (11.07.2010 - 10:12) inpost написал(а):
Там, где находится скрипт, создай папку "ааа", поставь права доступа 777.
$dir = "aaa/"; - замени

Спустя 33 минуты, 50 секунд (11.07.2010 - 10:46) gagger написал(а):
Значит вот как получается, папка где скрипт находится:
site.ru/registration/save_user.php - тут права 655

Куда должны заливаться картинки:

site.ru/user/profiles/avatar/ тут права 777


Спустя 2 часа, 55 минут, 17 секунд (11.07.2010 - 13:41) gagger написал(а):
неужели никто не знает в чем тут проблема? sad.gif

Спустя 12 минут, 34 секунды (11.07.2010 - 13:54) inpost написал(а):
site.ru/user/profiles/avatar/

А заливается в папку
/../../user/profile/avatars/

При этом сайт лежит в:
site.ru/registration/save_user.php

Ты делаешь возврат 2 раза, а надо лишь 1

П.С. все знают, просто ты тупишь, сделай другую папку, и провершь добавление в неё! Как я написал, папку ААА с правами доступа не 655, а 777!

Спустя 17 часов, 59 минут, 40 секунд (12.07.2010 - 07:53) linker написал(а):
Ну епт, конечно

site.ru/registration/save_user.php
../../user/profile/avatars/
site.ru/user/profiles/avatar/ - с этого и надо было начинать

!!!!!!!!
$dir = "../user/profile/avatars/";
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.