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

Форум PHP

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

 

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

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

тема: Загрузка файлов на сервер.
 
 автор: evgen_17   (02.03.2005 в 23:31)   письмо автору
 
 

Я создаю такую форму:

<html>
    <head>
        <title>Загрузить файл</title>
    </head>
<body>
    <form action="loadfile.php" method="POST" enctype/form-data">
    <input type="file" name="filename"><br>
    <input type="submit" value="Загрузить">
    </form>
</body>
</html> 

Она обрабатывается следующим файлом;

<?
 
if(copy($HTTP_POST_FILES["filename"], "/usr/files/".$HTTP_POST_FILES["filename"]))
{
echo (
"Файл скопирован.");
}
else
{
echo (
"Ошибка.");
}
?> 

Выдаёт сообщение "Ошибка." Права на доступ настроены, папка создана, чего-то ещё не хватает?

   
 
 автор: cheops   (02.03.2005 в 23:39)   письмо автору
 
   для: evgen_17   (02.03.2005 в 23:31)
 

Проблема в строке
<form action="loadfile.php" method="POST" enctype/form-data">

её следует переписать следующим образом
<form action="loadfile.php" method="POST" enctype='multipart/form-data'>

   
 
 автор: evgen_17   (03.03.2005 в 00:08)   письмо автору
 
   для: cheops   (02.03.2005 в 23:39)
 

А какую функцию нужно использовать, чтобы скачивать файлы с сервера? Кстате, какую же всё таки функцию использовать для загрузки файлов на сервер через интернет copy() или move_uploaded_file()?

   
 
 автор: Crux   (02.03.2005 в 23:47)   письмо автору
 
   для: evgen_17   (02.03.2005 в 23:31)
 

а уместна ли здесь функция copy(), помоему для загрузки файла используется ф-ция move_uploaded_file()

   
 
 автор: evgen_17   (02.03.2005 в 23:56)   письмо автору
 
   для: Crux   (02.03.2005 в 23:47)
 

>а уместна ли здесь функция copy(), помоему для загрузки
>файла используется ф-ция move_uploaded_file()
А поподробнее можно???

   
 
 автор: cheops   (03.03.2005 в 07:01)   письмо автору
 
   для: evgen_17   (02.03.2005 в 23:56)
 

Здесь лучше пользоваться суперглобальным массивом $_FILES - сервер сам примет файл от сервера, а вы возмёте его по окончанию из временной директории. Примеры скриптов можно посмотреть по ссылкам
http://www.softtime.ru/forum/read.php?id_forum=1&id_theme=739
http://www.softtime.ru/forum/read.php?id_forum=1&id_theme=445
http://www.softtime.ru/forum/read.php?id_forum=1&id_theme=78
http://www.softtime.ru/forum/read.php?id_forum=1&id_theme=77

   
 
 автор: evgen_17   (03.03.2005 в 20:54)   письмо автору
 
   для: cheops   (03.03.2005 в 07:01)
 

Спасибо за совет... А как мне зделать, чтобы перед тем как загрузит файл пользователь мог выбрать директорию для загрузки? И вот ещё что? Как отобразить список всех директорий в виде ссылок, при нажатии на ИМЯ директории она открывается и показывется всё её содержимое... Жду ответа...

   
 
 автор: evgen_17   (03.03.2005 в 22:14)   письмо автору
 
   для: evgen_17   (03.03.2005 в 20:54)
 

Что-то я ответа не могу дождаться...

   
 
 автор: cheops   (03.03.2005 в 22:21)   письмо автору
 
   для: evgen_17   (03.03.2005 в 20:54)
 

Список файлов в директории вы можете получить при помощи следующего кода
<?php 
  
// Открываем директорию 
  
$dir opendir("dir_name"); 
  
// В цикле считываем её содержимое 
  
while(($file readdir($dir))) 
  { 
    
// Если текущий объект является файлом - выводим его
    
if(is_file($file)) echo $file
  } 
  
// Закрываем директорию 
  
closedir($dir); 
?>

dir_name - это имя директории.

Названия директорий известны заранее или они динамически меняются?

   
 
 автор: evgen_17   (03.03.2005 в 22:29)   письмо автору
 
   для: cheops   (03.03.2005 в 22:21)
 

Директории чётко указаны. И меняются только мной, а пользователю остаётся только выбрать.
Кстате, код который Вы написали, точно такой же как и у меня, он выводит всё, что содержится в каталоге. Но мне нужно чтобы то, что вывелось было не просто надписью, а было ссылкой, т.е., чтобы можно было нажать на имя каталога и просмотреть его содержимое...

   
 
 автор: cheops   (03.03.2005 в 22:56)   письмо автору
 
   для: evgen_17   (03.03.2005 в 22:29)
 

Правильно ли я понял - нужно выводить содержимое директории, а подкаталоги выводить как ссылки - переход по которым выводит их содержимое?

   
 
 автор: evgen_17   (04.03.2005 в 14:32)   письмо автору
 
   для: cheops   (03.03.2005 в 22:56)
 

Да да именно так! Но это можно отодвинуть на второй план... Сейчас важнее в форму, приведённую в первом сообщение втиснуть код с помощью которого можно было бы выбирать каталог перед тем как загрузить файл...
Я пробовал использовать

<select name="name">
<option value="name1" (nn_mm)>Категория
.....

Но я не могу понять как присвоить категории тот адрес, где она расположена? Или может использование этой функции здесь вообще неуместно...
P.S. Нужен выпадающий список с категориями...

   
 
 автор: evgen_17   (04.03.2005 в 20:48)   письмо автору
 
   для: evgen_17   (04.03.2005 в 14:32)
 

И вот ещё что... Как же всётаки пользователю скачть файл? Какая функция нужна?

   
 
 автор: Crux   (04.03.2005 в 21:24)   письмо автору
 
   для: evgen_17   (04.03.2005 в 20:48)
 

>Как же всётаки пользователю скачть файл?
скачать или зарузить на сервер?
если загрузить, то лучше move_uploaded_file() - эта функция специально для этого и предназначена, а copy() наверное лучше использовать для перемешения файлов на сервере.

   
 
 автор: Crux   (04.03.2005 в 22:46)   письмо автору
866 байт
 
   для: Crux   (04.03.2005 в 21:24)
 

>Сейчас важнее в форму, приведённую в первом сообщение втиснуть код с помощью которого можно было бы выбирать каталог перед тем как загрузить файл...

смотри пр. файл...

в файле index.php измени переменную $path

   
 
 автор: evgen_17   (04.03.2005 в 22:49)   письмо автору
 
   для: Crux   (04.03.2005 в 22:46)
 

Crux, а ты не мог бы в ZIP упокавать или прямо так код вписать? У меня на Linux RAR не читат...

   
 
 автор: Crux   (04.03.2005 в 22:53)   письмо автору
 
   для: evgen_17   (04.03.2005 в 22:49)
 

вот...

   
 
 автор: evgen_17   (04.03.2005 в 23:08)   письмо автору
 
   для: Crux   (04.03.2005 в 22:53)
 

Спасибо...

   
 
 автор: evgen_17   (05.03.2005 в 00:34)   письмо автору
 
   для: evgen_17   (04.03.2005 в 23:08)
 

А можно ли каким-либо способом ограничить расширение загружаемых файлов для каждой директории?

   
 
 автор: Crux   (05.03.2005 в 00:37)   письмо автору
 
   для: evgen_17   (05.03.2005 в 00:34)
 

сделайте проверку перед загрузкой на расширение, если расширение подходит то загружаем если нет то не загружаем.
конкректной функции для этого нет.
надо писать код самому

   
 
 автор: glsv (Дизайнер)   (05.03.2005 в 00:51)   письмо автору
 
   для: evgen_17   (04.03.2005 в 14:32)
 

Это код выводит список поддиректорий в текущей директории в виде выпадающего списка.
Вам это нужно?

<?php 
  
// Открываем директорию 
  
$dir opendir("."); 
  
// В цикле считываем её содержимое 
  
echo "<select name='name'>";
  while((
$file readdir($dir))) 
  { 
    
// Если текущий объект является файлом - выводим его 
    
if(is_dir($file))
    {
      echo 
"<option value='$file'>$file<br>"
    }
  } 
  echo 
"<select>";
  
// Закрываем директорию 
  
closedir($dir); 
?>

   
 
 автор: evgen_17   (05.03.2005 в 01:10)   письмо автору
 
   для: glsv (Дизайнер)   (05.03.2005 в 00:51)
 

С этим я уже разобрался... А вот как вывести содержимое директории в виде ссылок с возможностью передвижения поним... Вот что меня в данный момент волнует.

   
 
 автор: glsv (Дизайнер)   (05.03.2005 в 01:18)   письмо автору
 
   для: evgen_17   (05.03.2005 в 01:10)
 

Не очень понятно. Лучше на примере поясните.
Содержимое директории - это файлы имеются ввиду?
А возможность передвижения по ним - это что значит?

   
 
 автор: evgen_17   (05.03.2005 в 02:01)   письмо автору
 
   для: glsv (Дизайнер)   (05.03.2005 в 01:18)
 

Нужно чтобы выводился список поддиректорий в выбранной директории и чтобы не просто выводился, а в виде ссылок были названия поддиректорий (т.е., например выводится список из 2-х директорий "dir1" и "dir2", я навожу курсор мышки на надпись "dir1", нажимаю, выводится то, что содержится в ней, то же самое с "dir2"...) Понятно теперь? В директории "dir1" и "dir2" могут содержаться и файлы и папки...

   
 
 автор: evgen_17   (05.03.2005 в 20:47)   письмо автору
 
   для: evgen_17   (05.03.2005 в 02:01)
 

Это вообще сложно сделать? Вот как у вас раздел Download устроен? Я насколько понял файлов там не много, можно и ссылки обычные сделать... А если их дофига и все они в разных дерикториях?

   
 
 автор: Crux   (05.03.2005 в 21:57)   письмо автору
 
   для: evgen_17   (05.03.2005 в 20:47)
 

>Это вообще сложно сделать?
насамом деле нет, не сложно...
просто очень сложно отвечать на такие вопросы, например: "как сделать интернет-магазин, приведите пожалуста код".

вам надо сделать что-то типа файл-менеджера, если я правилно понял...
ещё раз посмотрите то что я вам дал
например если изменить is_dir на is_file, то вместо каталогов будут выводится имена файлов, а чтоб путешествовать по папкам надо всего-лишь поменять переменную $path, т.е. указать путь.
вот и смотрите эксперементируйте, будут вопросы задовайте...

   
 
 автор: evgen_17   (05.03.2005 в 00:35)   письмо автору
 
   для: cheops   (03.03.2005 в 22:56)
 

Вы можете ответить на этот вопрос?

   
Rambler's Top100
вверх

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