Intereting Posts
ошибка yii при выполнении специальной команды WordPress: скрипт JQuery с одной страницей не работает? нажатие на ссылку должно отображать результат на той же странице. Кнопка BACK и REFRESH должна работать нормально YII, как обрабатывать пользовательскую страницу ошибки 404 вместе с другими страницами ошибок Приложение PHP PHP SDK для загрузки фотографий на страницу SELECT MAX (… не возвращает ничего в PHP / MYSQL Разрешать только URL-адреса, указанные в маршрутах, в Codeigniter PhpStorm не получает соединения xdebug: журнал событий PhpStorm: не удается оценить выражение 'isset ($ _ SERVER )' MySQL Итерации через элементы разделенной строки и делать с ними вещи Как я могу создать алгоритм для генерации случайных строк? Получить все элементы, имеющие атрибут itemprop доктрина 2.2 и кодифицирующий код 2.1 Список всех объектов определенного класса Вход в Google OAuth2 – получите ник и реальный адрес электронной почты YouTube Проверка даты, которая выпадает на рабочий день или на выходные?

Ограничить тип и размер файла в загрузке формы PHP

Привет всем Я нашел действительно хороший код на http://apptools.com, который помог мне создать форму, которая позволяет пользователям вводить туда детали, загружать файл, и затем он автоматически отправляет его мне автоматически, что отлично. Я просто задавался вопросом, знаете ли вы, как я могу ограничить типы файлов документами, pdf, psd, ai, jpg, bmp и, возможно, еще немного в будущем, а также ограничить его размером до 5 МБ. Код, который у меня есть, приведен ниже:

<?php if(!isset($_POST['Submit'])){ echo "error; you need to submit the form!"; } else { $to="my@email.com"; $subject="Subject header"; $enquiry = $_POST['message2']; $company = $_POST['company2']; $tel = $_POST['tel2']; $client = $_POST['fromname']; $clientemail = $_POST['fromemail']; $from = stripslashes($_POST['fromname'])."<".stripslashes($_POST['fromemail']).">"; $mime_boundary="==Multipart_Boundary_x".md5(mt_rand())."x"; $headers = "From: $from\r\n" . "MIME-Version: 1.0\r\n" . "Content-Type: multipart/mixed;\r\n" . " boundary=\"{$mime_boundary}\""; $message="Email from $fromname on Contact form.\n\n Details are as follows:\n Name: $client \n Company: $company \n Email: $clientemail \n Telephone: $tel \n Message: $enquiry \n". "\n Please contact them within 48 hours."; $message = "This is a multi-part message in MIME format.\n\n" . "--{$mime_boundary}\n" . "Content-Type: text/plain; charset=\"iso-8859-1\"\n" . "Content-Transfer-Encoding: 7bit\n\n" . $message . "\n\n"; foreach($_FILES as $userfile){ $tmp_name = $userfile['tmp_name']; $type = $userfile['type']; $name = $userfile['name']; $size = $userfile['size']; if (file_exists($tmp_name)){ if(is_uploaded_file($tmp_name)){ $file = fopen($tmp_name,'rb'); $data = fread($file,filesize($tmp_name)); fclose($file); $data = chunk_split(base64_encode($data)); } $message .= "--{$mime_boundary}\n" . "Content-Type: {$type};\n" . " name=\"{$name}\"\n" . "Content-Disposition: attachment;\n" . " filename=\"{$fileatt_name}\"\n" . "Content-Transfer-Encoding: base64\n\n" . $data . "\n\n"; } } $message.="--{$mime_boundary}--\n"; if (@mail($to, $subject, $message, $headers)) echo "Message Sent"; else echo "Failed to send"; } ?> 

Любая помощь будет большой.

Related of "Ограничить тип и размер файла в загрузке формы PHP"

Вы можете ограничить размер загрузки в php.ini ( здесь ), и вы можете проверить расширение имени загруженного файла, чтобы убедиться, что это приемлемый формат (не проверенный код):

 $okExtensions = array('jpg', 'png'); $fileName = 'test.doc'; $fileParts = explode('.', $fileName); if( in_array( strtolower( end($fileParts) ), $okExtensions) ) { // proceed }