[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Безопасен ли мой скрипт загрузки файлов на сервер
vinnie

<?php
//Если юзер нажал кнопку отправки
if (isset ($_POST['ok']))
{
$file = $_FILES['file']['name'];
$tmp = $_FILES['file']['tmp_name'];
$size = $_FILES['file']['size'];
$ext = array ('jpg','jpeg','gif','png');
$file_ext = strtolower(end(explode ('.', $file)));
if (in_array ($file_ext, $ext))
{
$createimg = getimagesize ($tmp);
if ($createimg[2] == 1 or $createimg[2] == 2 or $createimg[2] == 3)
{
if ($size < 1048576)
{
if (move_uploaded_file ($tmp, substr(md5(time().rand()), 0, 10).'.'.$file_ext))
{
echo 'Файл успешно загружен';
}
else
echo 'Не удалось загрузить файл';
}
else
echo 'Файл не должен быть больше 2 мб';
}
else
echo 'Вы загрузили не картинку';
}
else
echo 'Допустимые форматы: jpg, jpeg, gif, png';
}
else
echo '<p>Выберите файл для загрузки</p>';
?>




<form action="" method="post" enctype="multipart/form-data">
<p><input
type="file" name="file" /></p>
<p><input
type="submit" name="ok" value="Загрузить файл" /></p>
</form>





Спустя 15 минут, 34 секунды (7.11.2011 - 14:17) m4a1fox написал(а):
Ну так себе! Вообще это вопрос является спорным....

Спустя 4 минуты, 10 секунд (7.11.2011 - 14:21) vinnie написал(а):
Почему так себе???

Спустя 4 минуты, 5 секунд (7.11.2011 - 14:25) m4a1fox написал(а):
Ну а вы пробовали картинку загрузить не правильного формата? Например tiff

Спустя 2 минуты, 9 секунд (7.11.2011 - 14:27) vinnie написал(а):
Ну пробовал, и что?

Спустя 5 минут, 57 секунд (7.11.2011 - 14:33) m4a1fox написал(а):
vinnie
Цитата
Ну пробовал, и что?

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

Спустя 2 минуты, 43 секунды (7.11.2011 - 14:36) vinnie написал(а):
Представь себе не загружается)))

Спустя 9 минут, 23 секунды (7.11.2011 - 14:45) m4a1fox написал(а):
vinnie
рад за вас! biggrin.gif

Спустя 56 секунд (7.11.2011 - 14:46) vinnie написал(а):
Молодец! Радуйсяя!

Спустя 4 минуты, 30 секунд (7.11.2011 - 14:50) m4a1fox написал(а):
Не стоит так злорадствовать! Скрипт по сути - пустышка! Ничего особенного! Применим только в конкретном случае! Использовать его вторично просто скопировав - вряд ли получится. Плюс - разметка вашего кода - не фонтан. и вот эти строчки
Цитата
$createimg[2] == 1 or $createimg[2] == 2 or $createimg[2] == 3

лишнии.... в общем. Скрипт - нубский. biggrin.gif

Спустя 3 минуты, 1 секунда (7.11.2011 - 14:53) vinnie написал(а):
))) люблю тя

Спустя 3 минуты, 22 секунды (7.11.2011 - 14:57) m4a1fox написал(а):
Плюс - если нужно будет добавить возможность загрузки других форматов фалов.... что тогда делать?

Спустя 3 минуты, 23 секунды (7.11.2011 - 15:00) vinnie написал(а):
Другие нафиг не нужны!

Спустя 47 секунд (7.11.2011 - 15:01) RCuPeR написал(а):
Свернутый текст
m4a1fox, мистер флуд. Есть почти в каждой теме. Толку нет почти в каждой теме.


Вот моя старая наработка мультизагрузки картинок:

Форма.

<form action="actions.php" method="post" enctype="multipart/form-data">
<input
type="file" name="file[]" multiple="" />
<input
type="submit" value="Загрузить" />
</form>



Файл конфигураций.
<?php 

header('Content-Type: text/html; charset=utf-8');

/************** Путь к папки загрузки ****************/
$uploaddir = $_SERVER['DOCUMENT_ROOT'].'/files/files/';

/************** Размер файла ****************/
$file_maxSize = 1000000;

/************** Формат данных ****************/
$valid_extensions = array('jpg', 'jpeg', 'png', 'gif');

/************** Массив вывода ошибок ****************/
$error_values = array(

UPLOAD_ERR_INI_SIZE => 'Размер файла больше разрешенного директивой upload_max_filesize в php.ini',
UPLOAD_ERR_FORM_SIZE => 'Размер файла превышает указанное значение: '. $file_maxSize,
UPLOAD_ERR_PARTIAL => 'Файл был загружен только частично',
UPLOAD_ERR_NO_FILE => 'Не был выбран файл для загрузки',
UPLOAD_ERR_NO_TMP_DIR => 'Не найдена папка для временных файлов',
UPLOAD_ERR_CANT_WRITE => 'Ошибка записи файла на диск'

);

?>


Обработчик.
<?php include 'config.php';

$files = $_FILES['file'];
$arrCount = count($files['name']);

for ($count = 0; $count <= $arrCount-1; $count++) {
if($files['error'][$count] == UPLOAD_ERR_OK){
$file_extension = pathinfo($files['name'][$count], PATHINFO_EXTENSION);

if(in_array($file_extension, $valid_extensions)){
if($files['size'][$count] < $file_maxSize){

$basename = basename($files['name'][$count]);
$uploadfile = $uploaddir . $basename;

$copy = move_uploaded_file($files['tmp_name'][$count], $uploadfile);

if($copy){ echo 'OK!';} else { echo 'Error!';}
}
else {
exit('Размер файла больше допустимого.');
}
}
else {
exit('Неверный формат файла.');
}
}
else {
$error_code = $files['error'][$count];
if (!empty($error_values[$error_code])){
echo $error_values[$error_code];
} else {
echo 'Случилось что-то непонятное';
}
}
}


?>


Прошу прощения у ТС, что так нагло влез в его тему.

Спустя 31 секунда (7.11.2011 - 15:02) RCuPeR написал(а):
Цитата
Плюс - если нужно будет добавить возможность загрузки других форматов фалов.... что тогда делать?

В массив дописать !

Спустя 1 минута, 56 секунд (7.11.2011 - 15:03) vinnie написал(а):
RCuPeR

СТарая наработка))))))) тупо скопировал из статей Твина)))) который в свою очередь тупо переводит аглийские статьи на русский и выдаёт за свои)))

Спустя 17 секунд (7.11.2011 - 15:04) m4a1fox написал(а):
RCuPeR
Мдя.... ясно с вами! Господа. Под фразой другие файлы, я имею ввиду, другие форматы именно файлов. Господа учите мат. часть!

Спустя 1 минута, 17 секунд (7.11.2011 - 15:05) vinnie написал(а):
виртуальные рэмбо)))) хотел бы я встретиться с вами в реале)) посмотрел бы я , как ьы вы тогда заговорили

Спустя 1 минута, 28 секунд (7.11.2011 - 15:07) vinnie написал(а):
сейчас речь идет тока об этих четырех форматах картинок. когда другие нужны будут, переделаем

Спустя 1 минута, 17 секунд (7.11.2011 - 15:08) m4a1fox написал(а):
vinnie
Цитата
сейчас речь идет тока об этих четырех форматах картинок. когда другие нужны будут, переделаем

Все супер. Скрипт работает! Ты молодец. Можешь смело цеплять его на сайт. И не беспокоиться. Ни один враг не пройдет!

Спустя 1 минута, 14 секунд (7.11.2011 - 15:09) vinnie написал(а):
я знаю, что я молодец!без сопливых

Спустя 39 секунд (7.11.2011 - 15:10) RCuPeR написал(а):
Цитата
СТарая наработка))))))) тупо скопировал из статей Твина)))) который в свою очередь тупо переводит аглийские статьи на русский и выдаёт за свои)))

Да, был взят за основу скрипт twin-а, но доработан для мультизагрузки.

Цитата
Мдя.... ясно с вами! Господа. Под фразой другие файлы, я имею ввиду, другие форматы именно файлов. Господа учите мат. часть!

Я не знаю что ты имеешь введу под фразой "другие файлы". Я тебе ответил прямо. Мастер ёпт ! "Господа учите мат. часть" - а че учить-то ?

Спустя 1 минута, 54 секунды (7.11.2011 - 15:12) m4a1fox написал(а):
RCuPeR
Лады, тогда как насчет загрузки pdf файлов?

Кстати, RCuPeR. У ТС, скрипт по надежнее будет! не нашел в твоем скрипте getimagesize.... biggrin.gif biggrin.gif biggrin.gif

Спустя 4 минуты, 13 секунд (7.11.2011 - 15:16) m4a1fox написал(а):
vinnie
О! Я и не знал, что на форуме есть ГЕЙ!

Спустя 16 секунд (7.11.2011 - 15:16) RCuPeR написал(а):
Цитата (m4a1fox @ 7.11.2011 - 12:12)
RCuPeR
Лады, тогда как насчет загрузки pdf файлов?

Кстати, RCuPeR. У ТС, скрипт по надежнее будет! не нашел в твоем скрипте getimagesize.... :D  :D  :D

В массив с расширением файлов добавить pdf !

$_FILES['size'] - возвращает размер файла в байтах ! Умник... :angry:
$files['size'][$count]

Спустя 2 минуты, 1 секунда (7.11.2011 - 15:18) RCuPeR написал(а):
А, еще ! С ТС я не соревнуюсь на крутость кода.

Спустя 1 минута, 4 секунды (7.11.2011 - 15:19) vinnie написал(а):
$_FILES['size'] - возвращает размер файла в байтах

и что???

Спустя 1 минута, 55 секунд (7.11.2011 - 15:21) m4a1fox написал(а):
RCuPeR
Цитата
В массив с расширением файлов добавить pdf !

Отличное решение! Дай пять! biggrin.gif А как насчет переименованных файлов! Если так? Был файл: filename.jpg а стал filename.pdf?

То есть, если мы пропускаем картинки только естественно! Не беря в расчет возможность загрузки pdf!

Спустя 1 минута, 37 секунд (7.11.2011 - 15:23) RCuPeR написал(а):
m4a1fox, да. Не понял тебя по поводу getimagesize(). Если нету, видимо, не нужно было.

Спустя 1 минута, 13 секунд (7.11.2011 - 15:24) m4a1fox написал(а):
vinnie
Э не.... я с геями не общаюсь! Спасибо! Вам уже и парады разрешили проводить, и все такое, но вот нормальных парней, не надо под себя подстраивать! Вы же как пчелы. Один жалит второго, и все... второй, уже не стандартной ориентации и пошло поехало: как эпидемия. Нафиг надо. Так что, вы себе существуйте, но не трогайте нас.... ибо это, эээээ ОТВРАТИТЕЛЬНО!

Спустя 2 минуты, 11 секунд (7.11.2011 - 15:26) RCuPeR написал(а):
Свернутый текст
biggrin.gif biggrin.gif biggrin.gif
m4a1fox, на сколько я знаю, оскорбление на форуме катается. biggrin.gif


Спустя 2 минуты, 42 секунды (7.11.2011 - 15:29) m4a1fox написал(а):
vinnie
Цитата
очконос))))))) такие вот вы борщи)))

Нет, это называется принцип! Ну вам не понять! Вы один раз не пошли на него, так теперь его и нет у вас!

Спустя 3 минуты, 1 секунда (7.11.2011 - 15:32) RCuPeR написал(а):
vinnie, Боже упаси всезнайкой быть.
Моск по швам разойдется biggrin.gif

Спустя 8 минут, 1 секунда (7.11.2011 - 15:40) m4a1fox написал(а):
vinnie
Ну пусть будет так... мне все равно! Лишь бы вам было хорошо! biggrin.gif

Спустя 1 час, 26 минут, 30 секунд (7.11.2011 - 17:06) Invis1ble написал(а):

 ! 

М
ТС идет в read-only на недельку за оскорбления форумчан.
Не нравится форум - иди на другой. Нечего тут воду мутить.
Тема закрывается.
Invis1ble

Спустя 2 часа, 33 минуты, 54 секунды (7.11.2011 - 19:40) imbalance_hero написал(а):
Зачем вы на него агритесь? Если парниша такой по себе, то его путь очевиден, приду я, увижу оскорбления, хотя бы минимальные - отправлю в баню, ну а после таких - вообще забанить в форума навсегда хочется.

Будьте взрослее, такие "малолетки" вам будут встречаться каждый второй-третий день в сети, на всех обращать внимание? В данный момент вы успели сдержаться, а что будет завтра?! После 4-5 оскорбления от 4-5 малолетки захочется и огрызнуться - сами в баню попадёте... лучше игнорировать таких, ну это лишь моё скромное мнение...


_____________
Меньше теории, больше практики...
Быстрый ответ:

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