Модераторы: 2man

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> upload скрипт, если кому нужен будет... 
:(
    Опции темы
dm9
Дата 13.12.2004, 04:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Дмитрий Копытин
****


Профиль
Группа: Vingrad developer
Сообщений: 3876
Регистрация: 22.7.2002
Где: Москва

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



Сегодня пытался найти скрипт, который осуществляет upload на сервер. Требовалось, чтобы был защищён паролем. Нашёл штук пять, все глючные какие-то, половину вообще непонятно сразу как ставить. Пришлось написать свой. В общем, если кому надо будет, и не захочется изобретать велосипед, то вот:

Код
<?php
   $TITLE      = "Upload файлов"; //Заголовок окна
   $MAX_SIZE   = 1024*1024;       //Максимальный размер загружаемого файла в байтах. Ноль - нет ограничений
   $UPLOAD_DIR = "C:/Upload/";    //Папка, куда будут загружаться файлы
   $PASS_REQ   = "Yes";           //Нужен ли пароль на upload ("Yes" или "No")
   $PASSWORD   = "123";           //Пароль, если он нужен
?>

<html>
<head>
<title><?php echo $TITLE ?></title>
<style>
body {
   text-align: center;
}
</style>
</head>
<body>
   <br />
   <br />

<?php
   if ($MAX_SIZE <= 0) {
       $OUTPUT_LIMIT = "Нет ограничений";
   } else {
       $OUTPUT_LIMIT_SIZE = $MAX_SIZE;
       $OUTPUT_LIMIT_UNIT = "Байт";
       if ($OUTPUT_LIMIT_SIZE >= 1024) {
           $OUTPUT_LIMIT_SIZE = $OUTPUT_LIMIT_SIZE / 1024;
           $OUTPUT_LIMIT_UNIT = "КБайт";
       }
       if ($OUTPUT_LIMIT_SIZE >= 1024) {
           $OUTPUT_LIMIT_SIZE = $OUTPUT_LIMIT_SIZE / 1024;
           $OUTPUT_LIMIT_UNIT = "МБайт";
       }
       if ($OUTPUT_LIMIT_SIZE >= 1024) {
           $OUTPUT_LIMIT_SIZE = $OUTPUT_LIMIT_SIZE / 1024;
           $OUTPUT_LIMIT_UNIT = "ГБайт";
       }
       $OUTPUT_LIMIT = (int)$OUTPUT_LIMIT_SIZE . " " . $OUTPUT_LIMIT_UNIT;
   }
   if (!isset($_FILES["upfile"])) {
?>

   Максимальный размер отправляемого файла: <?php echo $OUTPUT_LIMIT; ?><br />
   <br />
   <form enctype="multipart/form-data" method="post" action="<?php echo $HTTP_SERVER_VARS['PHP_SELF'] ?>">
       <input type="file" name="upfile" size="70" style="width: 500px;" /><br /><br />
       <?php
           if ($PASS_REQ == "Yes") {echo "Пароль: <input type=\"password\" name=\"passw\" size=\"20\" /><br /><br />\n";}
       ?>
       <input type="submit" value="Отправить файл" /><br />
   </form>

<?php
   } else {
       if (($PASS_REQ == "Yes") && ($HTTP_POST_VARS["passw"] != $PASSWORD)) {
           printf ("Ошибка. Неправильный пароль.");
       } else {
           printf ("<b>Загружаемый файл</b><br />");
           printf ("Имя: %s<br />", $HTTP_POST_FILES["upfile"]["name"]);
           //printf ("Temp имя: %s<br />", $HTTP_POST_FILES["upfile"]["tmp_name"]);
           printf ("Размер: %s<br />", $HTTP_POST_FILES["upfile"]["size"]);
           //printf ("Тип: %s<br />", $HTTP_POST_FILES["upfile"]["type"]);
           if (($MAX_SIZE != 0) && ($HTTP_POST_FILES["upfile"]["size"] > $MAX_SIZE)) {
               printf ("Ошибка. Размер файла больше допустимого.");
           } else {
               if (copy ($HTTP_POST_FILES["upfile"]["tmp_name"], $UPLOAD_DIR.$HTTP_POST_FILES["upfile"]["name"])) {
                   printf ("Файл удачно скопирован.");
               } else {
                   printf ("Ошибка копирования файла на сервере.");
               }
           }
       }
   }
?>

</body>
</html>


Найдёте ошибки - напишите :-)))))
Добавлено @ 04:34
PS По-хорошему, ещё надо защитить сервер от аплоада больших файлов. Но это другой вопрос, про администрирование Web-серверов...

Это сообщение отредактировал(а) dm9 - 13.12.2004, 04:32
PM MAIL ICQ   Вверх
Opik
Дата 13.12.2004, 12:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Vingrad developer
Сообщений: 1918
Регистрация: 6.10.2004
Где: Рига

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



Цитата
printf ("...");

лучше просто
Код

print "...";

это быстрее
Цитата
<?php echo $TITLE ?>

обычно это делается так:
Код

<?=$TITLE?>

Цитата
$HTTP_SERVER_VARS['PHP_SELF']

$HTTP_SERVER_VARS - лучше не юзать, лучше юзать $_SERVER.
что является суперглобальной переменной...т.е:
Код

$_SERVER['PHP_SELF'].

аналогично с $HTTP_POST_VARS ( $_POST ) и $HTTP_POST_FILES ( $_FILES ), и есть ещё ( $_GET )

PM MAIL Skype   Вверх
dm9
Дата 13.12.2004, 18:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Дмитрий Копытин
****


Профиль
Группа: Vingrad developer
Сообщений: 3876
Регистрация: 22.7.2002
Где: Москва

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



Цитата(Opr @ 13.12.2004, 12:04)
Цитата 
$HTTP_SERVER_VARS['PHP_SELF'] 

$HTTP_SERVER_VARS - лучше не юзать, лучше юзать $_SERVER.
что является суперглобальной переменной...т.е:

Код 

$_SERVER['PHP_SELF'].


Это сделано для совместимости с более ранними версиями PHP.
Добавлено @ 18:32
Цитата(Opr @ 13.12.2004, 12:04)
обычно это делается так:

Код 

<?=$TITLE?>


Спасибо, я вспоминал, как это записать короче, но так нигде и не нашёл smile
Добавлено @ 18:34
Цитата(Opr @ 13.12.2004, 12:04)
аналогично с $HTTP_POST_VARS ( $_POST ) и $HTTP_POST_FILES ( $_FILES ), и есть ещё ( $_GET )


Спасибо, конечно... Есть ещё много чего :-))))))

Это сообщение отредактировал(а) dm9 - 13.12.2004, 18:35
PM MAIL ICQ   Вверх
penizillin
Дата 13.12.2004, 19:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



short tags не везде поддерживаются, с ними нужно быть осторожным.
PM MAIL ICQ   Вверх
dm9
Дата 13.12.2004, 20:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Дмитрий Копытин
****


Профиль
Группа: Vingrad developer
Сообщений: 3876
Регистрация: 22.7.2002
Где: Москва

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



А что такое "short tags"?
PM MAIL ICQ   Вверх
Opik
Дата 13.12.2004, 20:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Vingrad developer
Сообщений: 1918
Регистрация: 6.10.2004
Где: Рига

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



<?=$title?>
PM MAIL Skype   Вверх
IZ@TOP
Дата 13.12.2004, 23:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Панда-бир!
****


Профиль
Группа: Участник
Сообщений: 4795
Регистрация: 3.2.2003
Где: Бамбуковый лес

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



Меня ни когда не ламало написать <?php echo $Variables; ?>. Считаю это хорошим тоном в программинге на РНР.
Добавлено @ 23:21
Это если не использовать шаблоны smile


--------------------
Один из розовых плюшевых-всадников апокалипсиса... очень злой...

Семь кругов ада для новых элементов языка
Мои разрозненные мысли
PM MAIL WWW ICQ Skype GTalk   Вверх
Opik
Дата 13.12.2004, 23:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Vingrad developer
Сообщений: 1918
Регистрация: 6.10.2004
Где: Рига

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



IZ@TOP
Это лишь дело вкуса.
PM MAIL Skype   Вверх
dm9
Дата 13.12.2004, 23:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Дмитрий Копытин
****


Профиль
Группа: Vingrad developer
Сообщений: 3876
Регистрация: 22.7.2002
Где: Москва

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



А поясните фразу
Цитата(penizillin @ 13.12.2004, 19:55)
short tags не везде поддерживаются


Это где так?
PM MAIL ICQ   Вверх
IZ@TOP
Дата 13.12.2004, 23:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Панда-бир!
****


Профиль
Группа: Участник
Сообщений: 4795
Регистрация: 3.2.2003
Где: Бамбуковый лес

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



dm9, это там где стиль аспешный отключен smile


--------------------
Один из розовых плюшевых-всадников апокалипсиса... очень злой...

Семь кругов ада для новых элементов языка
Мои разрозненные мысли
PM MAIL WWW ICQ Skype GTalk   Вверх
dm9
Дата 13.12.2004, 23:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Дмитрий Копытин
****


Профиль
Группа: Vingrad developer
Сообщений: 3876
Регистрация: 22.7.2002
Где: Москва

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



Ну ты и ругнулся smile

Цитата(IZ @ 13.12.2004, 23:40)
стиль аспешный

Можно для ламеров поподробнее? smile)


PM MAIL ICQ   Вверх
IZ@TOP
Дата 14.12.2004, 00:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Панда-бир!
****


Профиль
Группа: Участник
Сообщений: 4795
Регистрация: 3.2.2003
Где: Бамбуковый лес

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



<%, <? это можно назвать ASP тегами. А РНР кроме обычных <?php ?> предусмотрены так же <script language="PHP" runat="server"> </script>, <? ?>.


--------------------
Один из розовых плюшевых-всадников апокалипсиса... очень злой...

Семь кругов ада для новых элементов языка
Мои разрозненные мысли
PM MAIL WWW ICQ Skype GTalk   Вверх
dm9
Дата 14.12.2004, 00:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Дмитрий Копытин
****


Профиль
Группа: Vingrad developer
Сообщений: 3876
Регистрация: 22.7.2002
Где: Москва

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



Хм... а разве <? ?> - это ASP ?
Хотя, я не разбираюсь smile
PM MAIL ICQ   Вверх
IZ@TOP
Дата 14.12.2004, 00:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Панда-бир!
****


Профиль
Группа: Участник
Сообщений: 4795
Регистрация: 3.2.2003
Где: Бамбуковый лес

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



Цитата(dm9 @ 14.12.2004, 01:45)
Хм... а разве <? ?> - это ASP ?
Хотя, я не разбираюсь

Это стиль ASP тегов. Во всяком случае насколько я знаю из книг которые читал, точнее была одна такая, автор правда предпочтение отдавал именно продуктам Microsoft и PHP задел в своей книге не так уж серьеъзно, но для новичка было достаточно. Вот от туда это выражеие я и вспомнил "Стиль ASP". В общем в приницпе разницы нет практически, что <?php или <?, но по всем канонам советуют использовать именно <?php. Хотя может это все глупости smile


--------------------
Один из розовых плюшевых-всадников апокалипсиса... очень злой...

Семь кругов ада для новых элементов языка
Мои разрозненные мысли
PM MAIL WWW ICQ Skype GTalk   Вверх
dm9
Дата 14.12.2004, 01:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Дмитрий Копытин
****


Профиль
Группа: Vingrad developer
Сообщений: 3876
Регистрация: 22.7.2002
Где: Москва

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



А, кажется, я понял, что ты имеешь в виду. <? ?> - это ASP-стиль в том смысле, что по аналогии с <% %> smile
В самом ASP, кажется, <? ?> не используется.
PM MAIL ICQ   Вверх
penizillin
Дата 14.12.2004, 02:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



PM MAIL ICQ   Вверх
dm9
Дата 14.12.2004, 02:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Дмитрий Копытин
****


Профиль
Группа: Vingrad developer
Сообщений: 3876
Регистрация: 22.7.2002
Где: Москва

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



penizillin, спасибо.
PM MAIL ICQ   Вверх
Opik
Дата 14.12.2004, 02:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Vingrad developer
Сообщений: 1918
Регистрация: 6.10.2004
Где: Рига

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



ASP стиль - <% %>
short tags - <??>

PM MAIL Skype   Вверх
skalex
Дата 14.12.2004, 13:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Хороший человек
**


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

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



Цитата
По-хорошему, ещё надо защитить сервер от аплоада больших файлов.

Как правило сервер и защищен от этого... smile
PM   Вверх
Opik
Дата 14.12.2004, 15:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Vingrad developer
Сообщений: 1918
Регистрация: 6.10.2004
Где: Рига

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



Метод $_POST по дефоулту ограничен 2мб.
PM MAIL Skype   Вверх
dm9
Дата 14.12.2004, 15:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Дмитрий Копытин
****


Профиль
Группа: Vingrad developer
Сообщений: 3876
Регистрация: 22.7.2002
Где: Москва

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



Да, скрипт выдаёт "Ошибка копирования файла на сервере."

НО! Мой Апач сначала закачивает траффик, а потом скрипт говорит об ошибке.
А если поставить LimitRequestBody в httpd.conf, то закачки не происходит, сразу выдаётся "Request Entity Too Large".
PM MAIL ICQ   Вверх
Opik
Дата 14.12.2004, 21:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Vingrad developer
Сообщений: 1918
Регистрация: 6.10.2004
Где: Рига

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



В .htaccess:
Код

php_value upload_max_filesize "20M"
php_value memory_limit "999999999"

=) И ограничений не буит, если тока самим скриптом. (20M - 20Mb).
Это если есть права на htaccess
PM MAIL Skype   Вверх
sergejzr
Дата 14.12.2004, 21:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Un salsero
Group Icon


Профиль
Группа: Админ
Сообщений: 13285
Регистрация: 10.2.2004
Где: Германия г .Ганновер

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



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


--------------------
PM WWW IM ICQ Skype GTalk Jabber AOL YIM MSN   Вверх
dm9
Дата 14.12.2004, 21:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Дмитрий Копытин
****


Профиль
Группа: Vingrad developer
Сообщений: 3876
Регистрация: 22.7.2002
Где: Москва

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



sergej.z, имхо, ТОЛЬКО после того, как он закачен на сервер в temp директорию. Я не прав?
PM MAIL ICQ   Вверх
sergejzr
Дата 14.12.2004, 21:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Un salsero
Group Icon


Профиль
Группа: Админ
Сообщений: 13285
Регистрация: 10.2.2004
Где: Германия г .Ганновер

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



Цитата(dm9 @ 14.12.2004, 20:45)
sergej.z, имхо, ТОЛЬКО после того, как он закачен на сервер в temp директорию. Я не прав?

Точно! сорри, не подумав...


--------------------
PM WWW IM ICQ Skype GTalk Jabber AOL YIM MSN   Вверх
Xeim
Дата 21.7.2006, 16:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Скрипт замечательный, но мое пожелание:
Чтобы пароль менялся каждые 2 часа например. И зайдя в запароленую админскую страничку можно было увидеть, какой пароль сейчас. Это очень нужно. Мое мнение. 
PM MAIL   Вверх
regret
Дата 25.7.2006, 18:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



horosho..

vot primer    img.skynet.md


esli nemnogo izmeniti:D smile  smile  
PM MAIL   Вверх
regret
Дата 25.7.2006, 20:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



php_value memory_limit  - 


eta  6tuka POMOJET ot radutia apache ?? A TO IZ-ZA MODOV(IZBITKA)  - U MENEA ON AJ 200 mb!



ZNAET KTO KAK DELATI TAK- 4TOBI PAMEATI OSVOBOJDALASI?? ILI AVTO-REBOOT?? ILI CE???  
PM MAIL   Вверх
Страницы: (2) [Все] 1 2 
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Другие движки / фрейморки | Следующая тема »


 




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


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

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