<center><?
$max_image_width = 380;
$max_image_height = 600;
$max_image_size = 64 * 1024;
$valid_types = array("png");
if (isset($_FILES["userfile"])) {
if (is_uploaded_file($_FILES['userfile']['tmp_name'])) {
$filename = $_FILES['userfile']['tmp_name'];
$ext = substr($_FILES['userfile']['name'],
1 + strrpos($_FILES['userfile']['name'], "."));
if (filesize($filename) > $max_image_size) {
echo 'Ошибка: Размер файла> 64К.';
} elseif (!in_array($ext, $valid_types)) {
echo 'Ошибка: Неправильный тип файла.';
} else {
$size = GetImageSize($filename);
if (($size) && ($size[0] < $max_image_width)
&& ($size[1] < $max_image_height)) {
if (@move_uploaded_file($filename, "/skinsik/")) {
echo 'Файл успешно загружен.';
} else {
echo 'Ошибка: перемещение файла не удалось.';
}
} else {
echo 'Ошибка: неверное свойство изображения.';
}
}
} else {
echo "Ошибка: пустой файл.";
}
} else {
echo '
<form enctype="multipart/form-data" method="post">
<input type="hidden" name="MAX_FILE_SIZE" value="64000">
Выбрать файл: <input name="userfile" type="file">
<input type="submit" value="Отправить файл">
</form>';
}
?></center>
Спустя 1 час, 4 минуты, 37 секунд (24.08.2011 - 18:46) sebastjan написал(а):
воспользуйся поиском, не раз уже было , там и готовые решения с загрузкой и ресайзом.
Спустя 2 часа, 47 минут, 48 секунд (24.08.2011 - 21:34) sofmes написал(а):
Не нашел я ничего лучше этого... На форуме есть, но там куски, а склеить цельную картину не выходит.
Спустя 1 минута, 55 секунд (24.08.2011 - 21:35) inpost написал(а):
sofmes
Выстави права на папку 777, ну а потом почитай про это внимательнее
Выстави права на папку 777, ну а потом почитай про это внимательнее
Спустя 17 минут, 58 секунд (24.08.2011 - 21:53) ИНСИ написал(а):
Цитата |
if (@move_uploaded_file($filename, "/skinsik/")) { |
Попробуй путь указать не от корня, а от загрузчика. Проблема скорее всего в этом.
Спустя 5 минут, 17 секунд (24.08.2011 - 21:59) neadekvat написал(а):
Цитата (INSIDIOUS @ 24.08.2011 - 22:53) |
Попробуй путь указать не от корня, а от загрузчика. Проблема скорее всего в этом. |
Что-то новенькое. Обычно проблемы возникают из-за относительных путей и решаются примением пути от корня.
Спустя 11 минут, 41 секунда (24.08.2011 - 22:10) sofmes написал(а):
Права 777. Изменение путей успеха не принесло.
Спустя 35 минут, 3 секунды (24.08.2011 - 22:45) ИНСИ написал(а):
neadekvat у меня как-то было такое, что от коня не работало. Видать настройки хостера были такие... Предположил что у ТС тоже самое.
sofmes попробуй так:
Вообще, move_uploaded_file уже давно содержит в себе: is_uploaded_file. К тому же is_uploaded_file уже устарела и не везде может работать
sofmes попробуй так:
$maxWidth = 380;
$maxHeight = 600;
$uploadName = 'userfile'; // имя поля в форме
$path = '/skinsik/'; // указываем папку, в которую надо загрузить
$maxSizeFile = 64 * 1024; // выставляем максимальный размер файла
$arrTypeFile = array('png'); // создаем массив с разрешенными форматами
if(!empty($_FILES[$uploadName]['tmp_name'])) { // если поле файла не пусто, то загружаем
$size = getimagesize($_FILES[$uploadName]['tmp_name']);
$ext = strtolower(str_replace('.', '', strrchr($_FILES[$uploadName]['name'],'.'))); // узнам тип файла
if($maxSizeFile > $_FILES[$uploadName]['size']) { // проверям размер
echo 'Ошибка: Размер файла> 64К';
} else if(!in_array(strtolower($ext),$arrTypeFile)) { // проверяем разрешен ли формат загружаемого файла
echo 'Ошибка: Неправильный тип файла.';
} else if($size[0] > $maxWidth && $size[1] > $maxHeight) {
echo 'Ошибка: неверное свойство изображения.';
} else {
$newFile = $path . uniqid() . '.' . $ext; // создаем новый файл, путь + новое имя
if(move_uploaded_file($_FILES[$uploadName]['tmp_name'],$newFile)) {
echo 'OK';
} else {
echo 'Произошла ошибка при загрузке файла на сервер!';
}
}
}
Вообще, move_uploaded_file уже давно содержит в себе: is_uploaded_file. К тому же is_uploaded_file уже устарела и не везде может работать
Спустя 8 часов, 48 минут, 18 секунд (25.08.2011 - 07:34) sofmes написал(а):
Спасибо, но теперь при нажатии "Загрузить" появляется белый экран...
Спустя 11 минут, 56 секунд (25.08.2011 - 07:46) linker написал(а):
neadekvat
Корень у хостера может быть и корнем домашней папки и корнем файловой системы, не надо путать корень с $_SERVER['DOCUMENT_ROOT'], это абсолютно разные вещи.
Корень у хостера может быть и корнем домашней папки и корнем файловой системы, не надо путать корень с $_SERVER['DOCUMENT_ROOT'], это абсолютно разные вещи.
Спустя 2 минуты, 2 секунды (25.08.2011 - 07:48) linker написал(а):
sofmes
Добавить в начало скрипта
Добавить в начало скрипта
ini_set('display_errors', 1);
error_reporting(E_ALL);
Спустя 2 часа, 11 минут, 54 секунды (25.08.2011 - 10:00) sofmes написал(а):
Я запутался окончательно. :( Теперь у меня два файла html и php.
upload.html
myup.php
Вот, а добавление строк кода успеха не принесло.
upload.html
<html>
<body>
<FORM
ENCTYPE="multipart/form-data" ACTION="myup.php"
METHOD=POST>
Выберете файл: <INPUT NAME="myfile"
TYPE="file">
<INPUT TYPE="submit"
VALUE="Загрузить">
</FORM>
</body>
</html>
myup.php
<?php
$maxWidth = 380;
$maxHeight = 600;
$uploadName = 'userfile'; // имя поля в форме
$path = '/skinsik/'; // указываем папку, в которую надо загрузить
$maxSizeFile = 64 * 1024; // выставляем максимальный размер файла
$arrTypeFile = array('png'); // создаем массив с разрешенными форматами
if(!empty($_FILES[$uploadName]['tmp_name'])) { // если поле файла не пусто, то загружаем
ini_set('display_errors', 1);
error_reporting(E_ALL);
$size = getimagesize($_FILES[$uploadName]['tmp_name']);
$ext = strtolower(str_replace('.', '', strrchr($_FILES[$uploadName]['name'],'.'))); // узнам тип файла
if($maxSizeFile > $_FILES[$uploadName]['size']) { // проверям размер
echo 'Ошибка: Размер файла> 64К';
} else if(!in_array(strtolower($ext),$arrTypeFile)) { // проверяем разрешен ли формат загружаемого файла
echo 'Ошибка: Неправильный тип файла.';
} else if($size[0] > $maxWidth && $size[1] > $maxHeight) {
echo 'Ошибка: неверное свойство изображения.';
} else {
$newFile = $path . uniqid() . '.' . $ext; // создаем новый файл, путь + новое имя
if(move_uploaded_file($_FILES[$uploadName]['tmp_name'],$newFile)) {
echo 'OK';
} else {
echo 'Произошла ошибка при загрузке файла на сервер!';
}
}
}
?>
Вот, а добавление строк кода успеха не принесло.
Спустя 9 минут, 57 секунд (25.08.2011 - 10:10) linker написал(а):
Ёпт, пути, пути, пути, это $path = '/skinsik/'; лажа, я на 100% уверен что в корне на хостинге такого пути не существует.
Спустя 1 час, 45 минут, 14 секунд (25.08.2011 - 11:55) sofmes написал(а):
Папка находится: localhost\www\123\skinsik\
myup.php и upload.html лежат в папке 123.
myup.php и upload.html лежат в папке 123.
Спустя 9 минут, 11 секунд (25.08.2011 - 12:04) linker написал(а):
/ - означает от корня либо диска, либо твоей домашней папки (зависит от настроек хостера). В твоём случае путь будет $path = './skinsik/';
Спустя 1 минута, 19 секунд (25.08.2011 - 12:05) ИНСИ написал(а):
И замени вот это:
$uploadName = 'myfile';
Спустя 9 минут, 37 секунд (25.08.2011 - 12:15) sofmes написал(а):
ini_set('display_errors', 1);
error_reporting(E_ALL);
Вроде бы работает, спасибо.
Спустя 4 часа, 43 минуты, 5 секунд (25.08.2011 - 16:58) Skesh написал(а):
Всеже я тоже думаю что проблема с правами доступа, попробуй поставить 777 на корень сайта и на все вложеные папки и файлы тоже, так в целях експеремента.
Спустя 3 часа, 4 минуты, 11 секунд (25.08.2011 - 20:02) sofmes написал(а):
Так работает все, еще раз спасибо! Прова и так 777.
Спустя 19 часов, 12 минут, 33 секунды (26.08.2011 - 15:15) Skesh написал(а):
А виноват, не дочитал =)