Главная :: Форум :: Web ClipArt :: Поиск :: Статистика :: Топ 10 :: Публикация :: Рекомендовать
netadmin.ws
Панель управления Регистрция свободна! Календарь Список пользователей Часто задаваемые вопросы Поиск по форуму Архив скриптов Главная   
Форум сетевых администраторов
Форум сетевых администраторов Форум сетевых администраторов » Программирование » PHP » Ограничение на формат файла при Uploade...
Предыдущая тема     Следующая тема
Автор
Тема    Новая тема     Ответить на эту тему
webgrs
Участник+

Зарегистрирован: May 2002
Место проживания:
Публикаций: 50
Статус: webgrs в оф-лайне
Question Ограничение на формат файла при Uploade... [сообщение #18542]

Наверно это никак не относитсяя к php..но я пишу скрипт на нем и потому меня волнует один вопрос.
а именно..вот пользователь заполняет форму в одной из которой нужно выбрать файл для upload'a на сервак, так как сделать ограничение по выбору типа файла, ну например только картинки...gif jpg
чтобы пользователь не смог грузить другой хлам...
может кто может мне помоч.

Сообщить модератору об этом сообщении | Предупреждение | IP: определен

Old Post 03-08-2002 23:29
Нажмите сюда для просмотра профайла webgrs Отправить Персональное сообщение webgrs Найти сообщения от webgrs Добавить webgrs в свой список друзей Редактировать/Удалить сообщение Ответить Цитируя
Vader666
Участник

Зарегистрирован: Mar 2002
Место проживания: Россия, Москва
Публикаций: 50
Статус: Vader666 в оф-лайне
Re: Ограничение на формат файла при Uploade... [сообщение #18571]

вот что написано в одном документе:

quote:

Форма загрузки файла

<FORM ENCTYPE="multipart/form-data" ACTION="_URL_" METHOD=POST>
<INPUT TYPE="hidden" name="MAX_FILE_SIZE" value="1000">
Send this file: <INPUT NAME="userfile" TYPE="file">
<INPUT TYPE="submit" VALUE="Send File">
</FORM>

_URL_ должен указать на php html файл. Cкрытое поле MAX_FILE_SIZE должно предшествовать полю ввода файла и означает максимально допустимый размер файла. Значение определяется в байтах. Для этого файла при успешной загрузке будут определены следующие переменные :

$userfile - Временное имя файла под которым загруженный файл загружается в машину сервера.

$userfile_name - Исходное имя файла в системе отправителя.

$userfile_size - Ð_азмер загруженного файла в байтах.

$userfile_type - Тип MIME файла, если броузер предоставил эту информацию. Например может быть "image/gif".

Обратите внимание, что компонент вышеупомянутых переменных "$userfile" - это любое значение поля Name тега INPUT c TYPE=file обозначенное в форме загрузки. В приведенном выше примере формы загрузки мы назвали его "userfile".

По умолчанию файлы будут сохранены в заданном по умолчанию временном каталоге сервера. Его можно изменить, установкой переменной среды TMPDIR в среде, в которой PHP выполняется. Хотя, использование при ее установке обращения PutEnv () изнутри сценария PHP не будет работать.

Скрипт PHP, который получает загруженный файл, должен определить, что должно быть выполнено с загруженным файлом. Вы можете, например, использовать переменную $file_size, чтобы отбросить любые файлы, которые являются или слишком маленькими или слишком большими. Вы могли бы использовать переменную $file_type, чтобы отбросить любые файлы, которые не соответствуют некоторым критериям типа. В любом случае, вы должны или удалить файл из временного каталога или переместить эго в другое место.
Файл будет удален из временного каталога в конце запроса, если он не перемещен или переименован.

__________________
Жизнь коротка, а выучить все не возможно....

Сообщить модератору об этом сообщении | Предупреждение | IP: определен

Old Post 04-08-2002 12:03
Нажмите сюда для просмотра профайла Vader666 Отправить Персональное сообщение Vader666 Найти сообщения от Vader666 Добавить Vader666 в свой список друзей Редактировать/Удалить сообщение Ответить Цитируя
webgrs
Участник+

Зарегистрирован: May 2002
Место проживания:
Публикаций: 50
Статус: webgrs в оф-лайне
[сообщение #18676]

$file_type
это то что нужно было
огромное спасибо...
а вообще этот текст уже видел, надо было получше почитать
сенькс еще раз :о)

Сообщить модератору об этом сообщении | Предупреждение | IP: определен

Old Post 04-08-2002 22:07
Нажмите сюда для просмотра профайла webgrs Отправить Персональное сообщение webgrs Найти сообщения от webgrs Добавить webgrs в свой список друзей Редактировать/Удалить сообщение Ответить Цитируя
devels
НеУчаcтник+
Средний рейтинг: 4.63 | Оценок: 8
/нажмите чтобы посмотреть кто оценивал/

Зарегистрирован: Mar 2002
Место проживания:
Публикаций: 270
Статус: devels в оф-лайне
Post Маленький файл для работы [сообщение #18967]

Не помню где я это нарыл и что переделал в этом скрипте, но все работает на нескольких серверах ...
Попробуй
Как сам наверное определил var $allowed_types и есть то что тебе нужно


PHP:


<?
class cupload {

var 
$the_file = "";
var 
$error = "";
var 
$my_max_file_size   = "102400";  # in bytes
var $image_max_width    = "300";     # in pixels
var $image_max_height   = "300";     # in pixels
var $allow_list = false;
var 
$the_path        = "/ где_ты_будешь_хранить_закач
анные_файлы"
;
var 
$allowed_types = array("image/bmp","image/gif","image/pjpeg","image/jpeg");
var 
$registered_types = array(
    
"application/x-gzip-compressed"    => ".tar.gz, .tgz",
    
"application/x-zip-compressed"    => ".zip",
    
"application/x-tar"        => ".tar",
    
"text/plain"            => ".html, .php, .txt, .inc (etc)",
    
"image/bmp"            => ".bmp, .ico",
    
"image/gif"            => ".gif",
    
"image/pjpeg"            => ".jpg, .jpeg",
    
"image/jpeg"            => ".jpg, .jpeg",
    
"application/x-shockwave-flash"    => ".swf",
    
"application/msword"        => ".doc",
    
"application/vnd.ms-excel"    => ".xls",
    
"application/octet-stream"    => ".exe, .fla (etc)"
);

// the class constructor

function cupload() {
global 
$the_file_name, $the_file, $SERVER_NAME, $DOCUMENT_ROOT;
    
$this->error = $this->validate_upload($the_file);
    if (
$this->error) {
        
$this->form($this->error);
    } else {
        if (!@
copy($the_file, $this->the_path . "/" . $the_file_name)) {
            
$this->form("\n<b>Something barfed, check the path to and ".
            
"the permissions for the upload directory</b>");
        } else {
            if (
$this->allow_list) $this->list_files();
        else echo 
"Your string is:<br>&lt;img src=\"http://".$SERVER_NAME.ereg_replace($DOCUMENT_ROOT,"",$this->the_path)."/".$the_file_name."\"&gt;";
            
$this->form();
        }
    }
}

// form upload creator

function form($error=false) {
global 
$PHP_SELF;
    if (
$this->error) 
        echo 
$this->error . "<br><br>";
        echo
"\n<form ENCTYPE=\"multipart/form-data\"  action=\"" . $PHP_SELF . "\" method=\"post\">";
        echo 
"\n<INPUT TYPE=\"hidden\" name=\"MAX_FILE_SIZE\" value=\"" . $this->my_max_file_size . "\">";
        echo 
"\n<INPUT TYPE=\"hidden\" name=\"task\" value=\"upload\">";
        echo 
"\n<P>Upload a file";
        echo 
"\n<BR>NOTE: max file size is " . ($this->my_max_file_size / 1024) . "KB";
        echo 
"\n<br><INPUT NAME=\"the_file\" TYPE=\"file\" SIZE=\"35\">";
        echo 
"\n<input type=\"submit\" Value=\"Upload\">";
        echo 
"\n</form>";
}

function 
validate_upload($the_file) {
global 
$the_file_type;
$start_error = "\n<b>Help:</b>\n";
if (!isset(
$this->error)) $this->error="";
if (
$the_file == "") {
    
$this->error .= "\n<li>You did not upload anything!</li>";
    } else {
        if (!@
in_array($the_file_type,$this->allowed_types)){
            
$this->error .= "\n<br>The file that you uploaded was of a type that is?not allowed, you are only allowed to upload files of the type:\n<ul>";
            while (
$type = @current($this->allowed_types)) {
                
$this->error .= "\n<li>" . $this->registered_types[$type] . " (" . $type . ")</li>";
                @
next($this->allowed_types);
                }
                
$this->error .= "\n</ul>";
            }
            if (
ereg("image",$the_file_type) && (in_array($the_file_type, $this->allowed_types))) {
                
$size = @GetImageSize($the_file);
                list(
$foo,$width,$bar,$height) = explode("\"",$size[3]);
            if (
$width > $this->image_max_width)$this->error .= "\n<br>Your image should be no wider than?$this->image_max_width Pixels</li>";
            if (
$height > $this->image_max_height) $this->error .= "\n<br>Your image should be no higher than $this->image_max_height Pixels</li>";
            }
            if (
$this->error) {
                
$this->error = $start_error . $this->error . "\n</ul>";
                return 
$this->error;
            } else {
                return 
false;
            }
        }
    }

function 
list_files() {
    
$handle = dir($this->the_path);
    echo 
"\n<b>Uploaded files:</b><br>";
    while (
$file = $handle->read()) {
        if ((
$file != ".") && ($file != "..")) {
            echo 
"\n" . $file . "<br>";
           }
    }
}

}
// end class
?> 

Сообщить модератору об этом сообщении | Предупреждение | IP: определен

Old Post 06-08-2002 15:59
Нажмите сюда для просмотра профайла devels Отправить Персональное сообщение devels Посетить домашнию страничку devels! Найти сообщения от devels Добавить devels в свой список друзей Редактировать/Удалить сообщение Ответить Цитируя
webgrs
Участник+

Зарегистрирован: May 2002
Место проживания:
Публикаций: 50
Статус: webgrs в оф-лайне
[сообщение #19080]

Мощная штука!!!!!!!!!!!!!
Ð_еализовано в этом случае все что возможно призагрузки файла.
Супер!
Огромное спасибо!

Сообщить модератору об этом сообщении | Предупреждение | IP: определен

Old Post 07-08-2002 01:45
Нажмите сюда для просмотра профайла webgrs Отправить Персональное сообщение webgrs Найти сообщения от webgrs Добавить webgrs в свой список друзей Редактировать/Удалить сообщение Ответить Цитируя



Формат времени GMT. Текущее время 02:47.
Новая тема   Ответить на эту тему [ Версия для печати Печать | Отправить эту страницу другу/знакомому! Отправить | Получать уведомления об обновлении этой темы Подписка ] Предыдущая тема     Следующая тема
Навигация по форуму:
Оценка темы:

Правила форума:
Вы не можете создавать новые темы.
Вы не можете отвечать на существующие темы.
Вы не можете прикреплять файлы.
Вы не можете редактировать свои сообщения.
HTML теги выкл.
Спец. код вкл.
Смайлики вкл.
[IMG] тег выкл.
 

Page generated in 1.39731789 seconds (99.46% PHP - 0.54% MySQL) with 23 queries.


  Главная :: Форум :: Web ClipArt :: Поиск :: Статистика :: Топ 10 :: Публикация :: Рекомендовать
©NetAdmin.ws, 2001-2026.
Powered by: vBulletin
Copyright ©2000, 2001, Jelsoft Enterprises Limited.