[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Не загружается изображения
Bossmen
Не могу найти ошибку

<?php
$error = array();
if(!empty($_POST['123']))
{

if(!preg_match('/[.](JPG)|(jpg)|(gif)|(GIF)|(png)|(PNG)$/',$_FILES['filename']['tmp_name'])) { $error[] = "Вы можете загрузить сюда только фотографию расширения JPG, PNG или GIF.";}

if(empty($error))
{
if(copy($_FILES['filename']['tmp_name'],
"avatar/".$_FILES['filename']['name']))
{
echo "Файл загружен";
exit;
}
else
{echo "Файл не загружен";}
}

}


if(!empty($error))
{
foreach($error as $err)
{
echo "<span style=\"color:red\">$err</span><br>";
}
}

?>




Спустя 9 минут, 6 секунд (23.12.2010 - 20:18) Invis1ble написал(а):
Я тоже =) В чем именно проблема?

Спустя 1 минута, 34 секунды (23.12.2010 - 20:20) Bossmen написал(а):
Так я загружаю фотку jpg а выводит ошибку "Вы можете загрузить сюда только фотографию расширения JPG, PNG или GIF."

Спустя 1 минута, 35 секунд (23.12.2010 - 20:21) Bossmen написал(а):
<form method="post" enctype="multipart/form-data">
<input type="file" name="filename"><br>
<input name="123" type="submit" value="Загрузить">
</form>

может в форме проблемы

Спустя 5 минут, 35 секунд (23.12.2010 - 20:27) Invis1ble написал(а):
Bossmen
так попробуй:
if(!preg_match('/\.(jpg|gif|png)$/i',$_FILES['filename']['name']))
$error[] = "Вы можете загрузить сюда только фотографию расширения JPG, PNG или GIF.";


UPD подправил немного

Спустя 12 часов, 47 минут, 17 секунд (24.12.2010 - 09:14) hellmin написал(а):
А зачем проверять название временного файла или название загружаемого файла?
Лучше проверять тип файла.
if(!preg_match('/((pjpeg)|(jpeg)|(gif)|(png))/i', $_FILES['filename']['type']))
$error[] = "Вы можете загрузить сюда только фотографию расширения JPG, PNG или GIF.";

Спустя 28 минут, 3 секунды (24.12.2010 - 09:42) linker написал(а):
Скажу только, кто хочет проблем, тот пускай продолжает проверять тип файла по $_FILES['filename']['type'].

Спустя 2 часа, 52 минуты, 9 секунд (24.12.2010 - 12:34) Bossmen написал(а):
А почему проблемы?

Спустя 37 минут, 56 секунд (24.12.2010 - 13:12) sharki написал(а):
Потому что у каждого браузера тип файла разный, ну по крайне мере у изображения

Спустя 56 минут, 38 секунд (24.12.2010 - 14:09) hellmin написал(а):
Ну и ладно!
Тогда мозг выдает другой вариант.
$img = getimagesize($_FILES['filename']['tmp_name']);
if(!preg_match('/^image/i', $img['mime']))
$error[] = "Вы можете загрузить сюда только изображение.";

Спустя 29 минут, 7 секунд (24.12.2010 - 14:38) linker написал(а):
Тоже не вариант, в начало загружаемого файла кладется валидный "заголовок" изображения, а после него пишется php-код, который потом успешно исполняется.

Спустя 40 минут, 28 секунд (24.12.2010 - 15:18) hellmin написал(а):
Ну тогда варианты в студию!
Кто что сможет предложить?
Быстрый ответ:

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