Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Загрузка файлов 
:(
    Опции темы
DezmASter
Дата 26.4.2007, 13:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Дизайнер :)
***


Профиль
Группа: Участник
Сообщений: 1520
Регистрация: 3.2.2006
Где: Украина, Запорожь е

Репутация: 1
Всего: 109



У php достаточно большой набор возможностей, для работы с загрузкой файлов:

Код

$_FILES["filename"]["tmp_name"]-имя сохраненного файла
$_FILES["filename"]["name"]-имя запрашиваемого файла
$_FILES["filename"]["size"] –размер файла в байтах
$_FILES["filename"]["type"]-содержит в себе разрешение файла и категорию к которой относится. 


Но не думайте что, последнее выведет вам прямо в руки его разрешение, оно выводит сначала категорию, а потом разрешение, например
application/x-rar-compressed-вот так обозначаются файлы с разрешением php.
Конечно можно было применить strops,с обрезанием до точки, а если файл будет содержать точки, то получится- БРЕД.
Как видите, скрипт написан на простейшем языке, дабы облегчить его понимание, данный скрипт можно было выполнить через оператор “or”,получилось значительно меньше тегов, но наверно менее понятно.

Что мы хотим о скрипта?
1)Чтобы можно было закачивать только архивы
2)Чтобы не больше 1 мегабайта
3)Перед закачкой,проверить не существует ли такое имя
4)Если есть то скрипт сам даст имя
Ну вот те цели которые мы перед собой поставили.Реализацию начнем с обычной html форме

Код

 <form action="#" method=POST enctype="multipart/form-data"> <input type="FILE" name="filename"><br> <input type="submit" name=upload value=Загрузить><br> </form> 


Ну а теперь сам код,в том же файле
 
Код

<?php if (isset($_POST['upload'])) { if(empty($filename)) { exit ("Имя введите"); } //Создаем массив с доступными разрешениями $array=array("application/zip","application/x-rar-compressed","image/jpeg"); //ищем разрешение файла в массиве if (in_array($_FILES['filename']['type'],$array))/ {//если найдено то выполняем проверку на размер файла  if ($_FILES['filename']['size'] > 1024*1*1024) { 
//если размер не подходит exit ("Максимальный размер файла 1 мегобайт "); } //для удобства приравниваем имя файла $fn=$_FILES['filename']['name']; //проверяем существует ли файл  if(file_exists("catalog/$fn")==TRUE)  { //если файл уже есть,о определяем дату, $date=time(); записываем файл в виде "дата@имя файла.разрешение copy($_FILES["filename"]["tmp_name"],"catalog/$date@$fn"); echo"Файл с таким именем уже присутствует в каталоге.Поэтому ему было присвоено имя $date@$fn"; } else {//если файла нету то просто копируем copy($_FILES["filename"]["tmp_name"],"catalog/$fn"); //копируем файл }} else {//если имя разрешение файла не найдено,тоесть не подходит exit ("Не подходит"); } }  ?> 


Автор: Велько Антон
Сайт автора: http://webdip.ucoz.ru/

PM WWW ICQ Skype GTalk Jabber   Вверх
IntruDen
Дата 10.12.2007, 14:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 5
Регистрация: 30.7.2006
Где: Россия, Самара

Репутация: нет
Всего: нет



А зачем так неудобно код ПХП пишется? пришлось в другой файл скидывать и табуляцией в нормальный вид приводить...
А за инфу спасибо!
PM MAIL WWW ICQ   Вверх
Feldmarschall
Дата 11.12.2007, 12:32 (ссылка) |  (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок
****


Профиль
Группа: Участник
Сообщений: 2641
Регистрация: 11.12.2007

Репутация: 22
Всего: 32



нет такого слова - "разрешение файла". есть слово "расширение". Расширение имени файла, от английского extension.
а то, что выводит $_FILES["filename"]["type"]- - это не "разрешение" и "категория", а MIME-тип.

а в остальном... ой, мама. 
код страшный, как моя жизнь.
чудовищное, действительно, оформление.
не выполняются рекомендации из документации про move_uploaded_file()
при register_globals=off работать не будет
у всех проверок, почему-то, exit сразу, а у "не подходит" - в самом конце.
заявлено, что принимаем только архивы, а в реальности ещё и картинки.
индусская какая-то конструкция 1024*1*1024

Вывод: неряшливо написанный код, ужасная реализация.
Где тут можно за статью кучу минусов поставить?


PM   Вверх
Anarki
Дата 11.12.2007, 17:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 326
Регистрация: 14.3.2005

Репутация: 7
Всего: 11



Код

$fn=$_FILES['filename']['name']; //проверяем существует ли файл
 if(file_exists("catalog/$fn")==TRUE)

Это наличие какого файла мы проверяем?

Это сообщение отредактировал(а) Anarki - 11.12.2007, 17:20


--------------------
PM WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0792 ]   [ Использовано запросов: 23 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.