Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Изменить имя файла при загрузке
 
 автор: Maratello   (25.01.2017 в 14:28)   письмо автору
 
 

Добрый день. Не как не могу задать, чтобы перед загрузкой файлов на сервер они переименовались. Заранее спасибо за любые советы.


<?PHP header("Content-Type: text/html; charset=utf-8");?>
<meta http-equiv="content-type" content="text/html; charset=UTF-8" />

<?php

    $allowed_filetypes 
= array('.jpg','.gif','.bmp','.png'); // Здесь мы перечисляем допустимые типы файлов

 
    
$max_filesize 2097152// Максимальный размер загружаемого файла в байтах (в данном случае он равен 2 Мб).

 
    
$upload_path './files/'// Место, куда будут загружаться файлы (в данном случае это папка 'files').

   
    
$filename $_FILES['userfile']['name']; // В переменную $filename заносим точное имя файла (включая расширение).

 
    
$ext substr($filenamestrpos($filename,'.'), strlen($filename)-1); // В переменную $ext заносим расширение загруженного файла.

   
    // Сверяем полученное расширение со списком допутимых расширений, которые мы определили в самом начале. Если расширение загруженного файла не входит в список разрешенных, то прерываем выполнение программы и выдаем соответствующее сообщение.


    
if(!in_array($ext,$allowed_filetypes))

    die(
'Данный тип файла не поддерживается.');

   
    
// Теперь проверим размер загруженного файла и если он больше максимально допустимого, то прерываем выполнение программы и выдаем сообщение.

  
    
if(filesize($_FILES['userfile']['tmp_name']) > $max_filesize)

    die(
'Файл слишком большой.');

 
    
// Проверяем, доступна ли на запись папка, определенная нами под загрузку файлов (папка files). Если вдруг недоступна, то выдаем сообщение, что на папку нужно поставить права доступа 777.


    
if(!is_writable($upload_path))

    die(
'Невозможно загрузить файл в папку. Установите права доступа - 777.');

 
    
// Загружаем файл в указанную папку.

    
if(move_uploaded_file($_FILES['userfile']['tmp_name'],$upload_path $filename))

 
    echo 
'OK'

    else

    echo 
'При загрузке возникли ошибки. Попробуйте ещё раз.';
      
      

   
// Get values from form
$name=$_POST['name'];
$phone=$_POST['phone'];
$email=$_POST['email'];
$com=$_POST['com'];





$to "почта"//Впишите сюда свой email
$subject "Заказ с сайта ...."//Заголовок письма
$message " Имя: " $name "\r\n Телефон: " $phone ."\r\n Email: " $email ."\r\n Сообщение: " $com "\r\n Файл загружен по адресу сайт/zapros/assets/files/"$filename //Укажите путь к файлу - сайт/zapros/assets/files/


$from "Форма";
$headers "От:" $from "\r\n";
$headers .= "Content-type: text/plain; charset=UTF-8" "\r\n"

if(@
mail($to,$subject,$message,$headers))
{
  print 
"<script>document.location.href='../#modal-fade';</script>";
  
// Адрес вашей страницы благодарности
}else{
  echo 
"Ошибка!Попробуйте ещё раз.";
}

 
?>

  Ответить  
 
 автор: confirm   (25.01.2017 в 17:30)   письмо автору
 
   для: Maratello   (25.01.2017 в 14:28)
 

$allowed_filetypes = array('.jpg','.gif','.bmp','.png'); // Здесь мы перечисляем допустимые типы файлов
$ext = substr($filename, strpos($filename,'.'), strlen($filename)-1); // В переменную $ext заносим расширение загруженного файла.
if(!in_array($ext,$allowed_filetypes))


Это глупости, которые легко обойти. Как минимум это нужно проверять посредством getimagesize.

Имя файла под которым он будет сохранен задается тут:

$filename = $_FILES['userfile']['name'];

то есть рано оригинальному имени. Укажите иное, будет загружено под другим именем.

И читайте об оформлении почтовых отправлений.

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования