<?php
// Подключаемься к базе данных
require_once ("db.php");
//================Настройки============= //
$maxwidth = "300px"; // максимальная ширина картинок на превью
$fotos_dir = "fotos/"; // Директория для фотографий товаров
$foto_name = $fotos_dir.time()."_".basename($_FILES['myfile']['name']); // Полное имя файла вместе с путем
$foto_light_name = time()."_".basename($_FILES['myfile']['name']); // Имя файла исключая путь
$foto_tag = "<img src=\"$foto_name\" border=\"0\">"; // Готовый тэг для вставки картинки на страницу
$foto_tag_preview = "<img src=\"$foto_name\" border=\"0\" width=\"$maxwidth\">"; // Тот же тэг, но для превью
// Текст ошибок
$error_by_mysql = "<span style=\"font: bold 15px tahoma; color: red;\">Ошибка при добавлении данных в базу</span>";
$error_by_file = "<span style=\"font: bold 15px tahoma; color: red;\">Невозможно загрузить файл в директорию. Возможно её не существует</span>";
// Начало
if(isset($_FILES["myfile"]))
{
$myfile = $_FILES["myfile"]["tmp_name"];
$myfile_name = $_FILES["myfile"]["name"];
$myfile_size = $_FILES["myfile"]["size"];
$myfile_type = $_FILES["myfile"]["type"];
$error_flag = $_FILES["myfile"]["error"];
// Если ошибок не было
if($error_flag == 0)
{
$DOCUMENT_ROOT = $_SERVER['DOCMENT_ROOT'];
$upfile = getcwd()."\\fotos\\" . time()."_".basename($_FILES["myfile"]["name"]);
if ($_FILES['myfile']['tmp_name'])
{
//Если не удалось загрузить файл
if (!move_uploaded_file($_FILES['myfile']['tmp_name'], $upfile))
{
echo "$error_by_file";
exit;
}
}
else
{
echo 'Проблема: возможна атака через загрузку файла. ';
echo $_FILES['myfile']['name'];
exit;
}
// После удачной обработки файла, выводим сообщение
echo "<h3>Результат добавления товара:</h3> <br />";
echo "<b>Файл успешно скопирован в директорию:</b> ".$fotos_dir." <br /><b>Имя файла:</b> ".$foto_light_name."<br />";
echo "<br /><small>Превью загруженной картинки:</small> <br />$foto_tag_preview<br /><br />";
// Заносим путь картинки в базу данных
$q = "INSERT INTO goods (foto) VALUES ('$foto_name')";
$query = mysql_query($q);
// Данные успешно внесены в базу данных, выводим сообщение
if ($query == 'true') {
echo "<br /><b>Данные успешно внесены в базу</b>";
}
// В противном случае, выводим ошибку при добавлении в базу данных
else {
echo "$error_by_mysql";
}
}
elseif ($myfile_size == 0) {
echo "Пустая форма!";
}
}
?>
Спустя 7 минут, 17 секунд (14.12.2010 - 22:50) kovaldm написал(а):
В чем проблема?
Спустя 2 часа, 19 минут, 7 секунд (15.12.2010 - 01:09) Dimiroff написал(а):
В него нужно вставить проверку на тип загружаемого файла.
Спустя 5 минут, 3 секунды (15.12.2010 - 01:14) Invis1ble написал(а):
сравнивай $_FILES["myfile"]["type"] с требуемыми расширениями - это самая простая проверка..
как-то так вроде бы...
как-то так вроде бы...
Спустя 8 часов, 35 минут, 23 секунды (15.12.2010 - 09:50) linker написал(а):
Учимся пользоваться поиском, за полные сутки вторая подобная тема, вот ближайшая с ответом http://phpforum.ru/index.php?showtopic=37865&hl=
Спустя 14 часов, 3 минуты, 35 секунд (15.12.2010 - 23:53) Dimiroff написал(а):
Нада делать так? Я правильно понял?
Сначала заносим в переменную:
$formats = array('gif', 'jpg', 'png');
а потом присоединяем здесь:
$myfile_type = $_FILES["myfile"]["type"]=$formats;
Так? исправьте плиз)
Сначала заносим в переменную:
$formats = array('gif', 'jpg', 'png');
а потом присоединяем здесь:
$myfile_type = $_FILES["myfile"]["type"]=$formats;
Так? исправьте плиз)
Спустя 54 минуты, 18 секунд (16.12.2010 - 00:48) kovaldm написал(а):
Если уж сравнивать расширение, то так:
А лучше попробовать открыть архив, если откроется - значит пропускаем, если нет - до свидания. "А усы и подделать можно".
$myfile_type = $_FILES["myfile"]["type"];
if(in_array($myfile_type, $formats))
{
//твойкод
}
А лучше попробовать открыть архив, если откроется - значит пропускаем, если нет - до свидания. "А усы и подделать можно".
Спустя 2 дня, 1 час, 16 минут, 41 секунда (18.12.2010 - 02:04) Dimiroff написал(а):
Ребята, пожалуйста, напишите все целиком) Напишите может как лучше, очень надо...)