- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу

Зачем быть уникальным в мире, где все можно скопировать
Почему так важна уникальность текста и как она влияет на SEO
Ingate Organic

В 2023 году Google заблокировал более 170 млн фальшивых отзывов на Картах
Это на 45% больше, чем в 2022 году
Оксана Мамчуева
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Здравствуйте! Мне нужно реализовать загрузку фотографии на сервер с проверками и переименовкой. Есть такие отрывки кодов, как только не пробовала, не могу собрать их в один файл.
В этом коде все отлично загружается, но без проверок и с русским названием.
$uploaddir = 'avatars/';
if (move_uploaded_file($_FILES['foto']['tmp_name'], $uploaddir .
$_FILES['foto']['name'])) {
print "Файл успешно загружен!";
} else {
print "Какая-то ошибка!";
}
Вот коды для проверок:
Здесь у меня в папку ничего не загружается, и файл заносится в базу с временным именем и потерей расширения, хотя есть скрипт для замены имени.
function isSecurity($foto){
$name = $_FILES['foto']['name'];
$type = $_FILES['foto']['type'];
$size = $_FILES['foto']['size'];
$blacklist = array(".php", ".phtml", ".php3", ".php4");
foreach ($blacklist as $item) {if(preg_match("/$item\$/i", $name))return false;}
if (($type != "image/gif") && ($type != "image/png") && ($type != "image/jpg") && ($type != "image/jpeg"))return false;
if ($size > 800 * 1024) return false;
}
function LoadFoto($foto){
$type = $_FILES['foto']['type'];
$uploaddir = "avatars/";
$name = md5(microtime()).".".substr($type, strlen("image/"));
$uploadfile = $uploaddir.$name;
if(move_uploaded_file($foto["tmp_name"], $uploadfile))
{
setFoto($name); return true;
}
else return false;
}
function setFoto($name)
{
mysql_query ("INSERT INTO obyavleniya SET foto='$name' WHERE id='$id'");
}
Помогите советом, пожалуйста и если будете писать код, напишите, пожалуста, с пояснениями. Спасибо.
---------- Добавлено 11.09.2012 в 13:32 ----------
Если есть, напишите, пожалуйста, свой рабочий код с пояснениями.
Пробовала вот так, вроде все понятно, но тоже не выходит, файл вообще не загружается, а в базе сохраняется под временным именем, хотя имя обрабатывается функцией:
if (isset($_POST['foto'])) {
function isSecurity($foto){
$name = $_FILES['foto']['name'];
$type = $_FILES['foto']['type'];
$size = $_FILES['foto']['size'];
$blacklist = array(".php", ".phtml", ".php3", ".php4");
foreach ($blacklist as $item) {if(preg_match("/$item\$/i", $name))return false;}
if (($type != "image/gif") && ($type != "image/png") && ($type != "image/jpg") && ($type != "image/jpeg"))return false;
if ($size > 800 * 1024) return false;
}
function LoadFoto($foto){
$type = $_FILES['foto']['type'];
$uploaddir = "avatars/";
$name = md5(microtime()).".".substr($type, strlen("image/"));
$uploadfile = $uploaddir.$name;
if(move_uploaded_file($foto["tmp_name"], $uploadfile))
{
setFoto($name); return true;
}
else return false;
}
function setFoto($name)
{
$result1 = mysql_query ("INSERT INTO obyavleniya (foto)) VALUES ('$name')");
}
if (isSecurity($foto)) LoadFoto($foto);
else $message = "Ошибка при загрузке фото";
}