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

Форум PHP

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

 

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

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

тема: Как можно получить тип файла, загружаемого на сервер?
 
 автор: Brandon Hit   (09.02.2006 в 15:50)   письмо автору
 
 

Файл загружается через web-форму

<?php
if (isset($_FILES["filename"]))
{
 if (
$_FILES["filename"]["name"]!='')
 {
  if(
$_FILES["filename"]["size"] > 12*1024)
   {
   echo (
"Размер файла превышает двенадцать килобайт");
   } else
           if(
copy($_FILES["filename"]["tmp_name"], "obraz/".$_FILES["filename"]["name"]))
            {
            echo(
"Файл успешно загружен <br>");
            } else {
                       echo(
"Ошибка загрузки файла");
          }
 } else echo 
'Файл не указан!';
}
?>

<html>
<body>
      <h2>Загрузка образа персонажа</h2>
      <form action="obraz_upload.php" method="post" enctype="multipart/form-data">
      <input type="file" name="filename"><br>
      <input type="submit" value="Загрузить"><br>
      </form>
</body>
</html>

   
 
 автор: Axxil   (09.02.2006 в 16:02)   письмо автору
 
   для: Brandon Hit   (09.02.2006 в 15:50)
 


<?
$filetype 
$_FILES['filename']['type'];
?>

как ни странно :)

   
 
 автор: Brandon Hit   (09.02.2006 в 16:06)   письмо автору
 
   для: Axxil   (09.02.2006 в 16:02)
 

Извинияюсь... неправильно выразился:)
Надо получить не тип файла, а его расширение:)

   
 
 автор: kasmanaft   (09.02.2006 в 16:47)   письмо автору
 
   для: Brandon Hit   (09.02.2006 в 16:06)
 

в имени файла, если идти с конца и до точки - будет расширение
можно с помощью регулярного выражения ето все оформить...

имя файла: $_FILES['filename']['name'];

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

   
 
 автор: Axxil   (09.02.2006 в 17:18)   письмо автору
 
   для: kasmanaft   (09.02.2006 в 16:47)
 

Да, расширение сейчас никакой роли не играет, только связывает файл с определённой прогой.
$_FILES['filename']['type'] содержит mime тип файла. Вот выборочный список:

Архив RAR application/x-tar 
Архив ZIP application/x-zip-compressed 
Исполняемый файл (.exe) application/octet-stream 
Аудио- или видеозапись ASF video/x-ms-asf 
Аудио- или видеозапись WMV video/x-ms-wmv 
Аудиозапись AIFF audio/aiff 
Аудиозапись AU audio/basic 
Аудиозапись MIDI audio/mid 
Аудиозапись MP3 audio/mpeg 
Аудиозапись WAV audio/wav 
Аудиозапись WMA audio/x-ms-wma 
Аудиозапись AVI video/avi 
Аудиозапись AVI (.avi) video/x-msvideo 
Видеозапись Indeo (IVF) video/x-ivf 
Видеозапись MPEG (.mpeg .mpg .mpe) video/mpeg 
Видеозапись QuickTime (.qt .mov) video/quicktime 
Визитная карточка, используемая почтовыми программами для хранения данных об адресате text/x-vcard 
Графический файл ART image/x-jg 
Графический файл BMP image/bmp 
Графический файл GIF image/gif 
Графический файл JPEG image/jpeg 
Графический файл Macromedia Flash application/futuresplash 
Графический файл TIFF image/tiff 
Документ Adobe Acrobat application/pdf 
Документ HTML text/html 
Документ Microsoft Excel application/x-msexcel 
Документ Microsoft Word application/msword 
Документ RTF application/msword 
Документ RTX text/richtext 
Документ XML text/xml 
Приложение application/x-msdownload 
Приложение HTML (HTA) application/hta 
Таблица стилей HTML text/css 
Текстовой документ text/plain 
ECMAScript text/ecmascript 

Т.о. если загружен jpg файл то $_FILES['filename']['type']='image/jpeg';

   
 
 автор: Brandon Hit   (09.02.2006 в 17:28)   письмо автору
 
   для: kasmanaft   (09.02.2006 в 16:47)
 

>в имени файла, если идти с конца и до точки - будет
>расширение
>можно с помощью регулярного выражения ето все оформить...
>
>имя файла: $_FILES['filename']['name'];
Вот, значит надо через регулярные выражения!
А может кто-нибудь составит рег. выражение?
:)

   
 
 автор: Axxil   (09.02.2006 в 18:20)   письмо автору
 
   для: Brandon Hit   (09.02.2006 в 17:28)
 

Да не надо здесь регулярныx выражений


<?
list($filename,$fileext)=explode(".",$_FILES['filename']['name']);
?>

В переменной $fileext будет расширение файла.
ТОлько зачем вам расширение нужно?

   
 
 автор: Brandon Hit   (09.02.2006 в 18:47)   письмо автору
 
   для: Axxil   (09.02.2006 в 18:20)
 

preg_match('/\.(jpg|jpeg|gif|png)$/i', $_FILES["filename"]["name"],$out
Регулярное выражение

>ТОлько зачем вам расширение нужно?
переписать файл со случайным id, а для этого нужно было знать расширение файла.

   
Rambler's Top100
вверх

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