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

Форум PHP

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

 

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

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

тема: Третий параметр в ftp_put
 
 автор: Luce   (25.09.2006 в 22:52)   письмо автору
 
 

Пожалуйста, объясните, что значит третий параметр в ftp_put:

ftp_put ($connect, $local_file, $remote_file, FTP_BINARY)


Я пытаюсь загрузить с локального сервера на сервер в сети файл таким кодом:

$connect=ftp_connect($host);
$result=ftp_login($connect,$user,$password);
$name_file="D:\text.txt";
$name_file_onhost="text.txt";
$send=ftp_put($connect,$name_file,$name_file_onhost,FTP_BINARY);
iif (!$send) {echo "<P><FONT color=red>Mistake!</FONT><P>";} 
     else {echo "<P><FONT color=green>OK!</FONT>";}
     }
\
И постоянно выдаёт Mistake.
В чём ошибка?

   
 
 автор: Саня   (25.09.2006 в 23:13)   письмо автору
 
   для: Luce   (25.09.2006 в 22:52)
 

Попробуйте mode поменять на FTP_ASCII.

   
 
 автор: kasmanaft   (25.09.2006 в 23:16)   письмо автору
 
   для: Luce   (25.09.2006 в 22:52)
 

Возможно у скрипта недостаточно прав на запись. Попробуйте дать корневой папке на сайте права 777 (потом, можно вернуть назад) ... или создайте папку с нужными правами и пишите $name_file_onhost от корня сайта

   
 
 автор: Luce   (26.09.2006 в 22:49)   письмо автору
 
   для: kasmanaft   (25.09.2006 в 23:16)
 

Спасибо, теперь вроде работает...
Но я захотела вывести все файлы так:

echo "<TABLE width=50%  border=1 cellspacing=0 cellpadding=2 
                        align=right><TR><TH><P class=msg>".$current_dir;
            echo "</TH><TH>P class=msg>Size</TH></TR>";
    /*строка 41*/        $file_list=ftp_nlist($connect,".");
            if (is_array($file_list))
                {  foreach($file_list as $file)
                      {$size=ftp_size($connect,$file);
                            echo "<TR><TD><P class=msg>$file </TD><TD>$size B</TD></TR>";}
                }
            echo"</TABLE>";


И получаю такое сообщение:
Warning: ftp_nlist(): Unable to create temporary file. Check permissions in temporary files directory. in z:\home\localhost\www\mytest\upload.php on line 41


В чём ошибка, подскажите, пожалуйста.

   
 
 автор: EXP   (26.09.2006 в 23:29)   письмо автору
 
   для: Luce   (26.09.2006 в 22:49)
 

Помоему путь к папке "." надо указать так "/папка/папка" или так "/папка" по другому просто непробовал.

   
 
 автор: cheops   (27.09.2006 в 00:08)   письмо автору
 
   для: Luce   (26.09.2006 в 22:49)
 

А у вас директория для временных файлов в php.ini определена? И если определена, то существует?

   
 
 автор: Luce   (27.09.2006 в 21:16)   письмо автору
 
   для: cheops   (27.09.2006 в 00:08)
 

У меня написано в php.ini:

upload_tmp_dir = /tmp

Это что значит? Я должна создать папку tmp у себя в папке, где этот скрипт?

А какая вообще стандартная tmp-директория?

   
 
 автор: Trianon   (27.09.2006 в 21:30)   письмо автору
 
   для: Luce   (27.09.2006 в 21:16)
 

почти наверняка это папка tmp в корне диска Z:

   
 
 автор: cheops   (27.09.2006 в 23:07)   письмо автору
 
   для: Luce   (27.09.2006 в 21:16)
 

У вас UNIX или Windows машина? (пути в стиле /путь/к/директори испльзуются под UNIX).

   
 
 автор: Luce   (28.09.2006 в 22:30)   письмо автору
 
   для: cheops   (27.09.2006 в 23:07)
 

У меня на локалхосте - Windows. А на FTP - сервере - не знаю точно.
Я сменила у себя на локалхосте права "Только чтение" для папки Z:/TMP/, но сообщение остаётся такое же:

Warning: ftp_nlist(): Unable to create temporary file. Check permissions in temporary files directory. in z:\home\localhost\www\mytest\upload.php on line 46


А когда слила свой upload.php на интернет-сервер (куда хочу грузить по FTP с помощью РНР), такого сообщения нет, но и списка файлов не выводится.

Если знаете — подскажите, пожалуйста, в чём конкретно ошибка.

   
 
 автор: cheops   (28.09.2006 в 23:01)   письмо автору
 
   для: Luce   (28.09.2006 в 22:30)
 

Директория Z:/TMP/ существует?

   
 
 автор: Luce   (29.09.2006 в 21:56)   письмо автору
 
   для: cheops   (28.09.2006 в 23:01)
 

Да, существует. Я убрала с директории TMP флажок "только чтение", но результата не видно.

   
 
 автор: Luce   (29.09.2006 в 21:57)   письмо автору
 
   для: cheops   (28.09.2006 в 23:01)
 

А как можно сменить директорию в FTP-manager?

   
 
 автор: cheops   (30.09.2006 в 12:23)   письмо автору
 
   для: Luce   (29.09.2006 в 21:57)
 

Можно, для этого следует воспользоваться либо функцией ftp_chdir(), либо указав полный путь к новой директории в других функциях, например, в ftp_nlist().

   
 
 автор: Luce   (01.10.2006 в 22:59)   письмо автору
 
   для: cheops   (30.09.2006 в 12:23)
 

Я имела в виду ваше приложение FTPManager...

А есть ли в фтп функция наподобие fopen, fputs, opendir, readdiir?

   
 
 автор: cheops   (02.10.2006 в 00:27)   письмо автору
 
   для: Luce   (01.10.2006 в 22:59)
 

Нет, содержимое файлов прочить нельзя - FTP - протокол передачи файлов и он оперирует только самими файлами, а не их содержимым, можно загрузить файл на локальную машину и прочитать его содержимое. Можно загрузить файл на сервер, можно узнать содержимое текущей директории. У вас какая исходная задача - что делаете?

   
 
 автор: Luce   (02.10.2006 в 21:49)   письмо автору
 
   для: cheops   (02.10.2006 в 00:27)
 

У меня имеется ПК с бесплатным Интернетом, но без поддержки ФТП "напрямую". Хочу написать и/или достать скрипт, который бы позволял загрузить через фтп с PHP-интерфейсом. Поэтому и мучусь :)...

   
 
 автор: cheops   (03.10.2006 в 12:35)   письмо автору
 
   для: Luce   (02.10.2006 в 21:49)
 

Воспользуйтесь FTP-менеджером http://www.softtime.ru/info/ftpmanager.php. Правда в вашем случае он будет располжен на удалённой машине и для загрузки файла с FTP-сервера на вашу локальную машину вам потребуется загружать файл по FTP и тут же выдавать его в браузере
<?php
  
// Генерируем ункальное имя файла в директории files
  
$localfile tempnam("files","down");
  
// $ftp_handle - дескриптор соединения
  // $_GET['dir'] - путь к файлу на сервере
  
$ret = @ftp_nb_get($ftp_handle$localfile$_GET['dir'], FTP_BINARY);
  while (
$ret == FTP_MOREDATA)
  {
    
// Продолжаем загрузку
    
$ret = @ftp_nb_continue($ftp_handle);
  }
  @
chmod($localfile0644);
  
// Если происходит ошибка при загрузке файла
  // уведомляем об этом пользователя
  
if ($ret != FTP_FINISHED)
  {
    exit(
"<br>Во время загрузки файла произошла ошибка...");
  }
  else
  {
    
header("Content-Disposition: attachment; filename=".basename($_GET['dir'])); 
    
header("Content-Length: ".filesize($localfile)); 
    
header("Content-Type: application/x-force-download; name=\"".basename($_GET['dir'])."\"");
    echo @
file_get_contents($localfile);
  }
  @
unlink($localfile);
?>

   
 
 автор: Luce   (03.10.2006 в 20:58)   письмо автору
 
   для: cheops   (03.10.2006 в 12:35)
 

Спасибо за совет, cheops!
Я установила себе приложение FTP-менеджер, но там возникли такие проблемы: не высвечивается список файлов, и я не знаю, как в таком случае сменить директорию, чтобы грузить, например, не в WWW, а в WWW/texts. Я выносила эти вопросы на обсуждение тут: http://www.softtime.ru/forum/read.php?id_forum=1&id_theme=25233
А что должен делать приведённый Вами скрипт? Он нуждается в настройке?

   
 
 автор: cheops   (04.10.2006 в 14:46)   письмо автору
 
   для: Luce   (03.10.2006 в 20:58)
 

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

   
 
 автор: Luce   (05.10.2006 в 21:29)   письмо автору
 
   для: cheops   (04.10.2006 в 14:46)
 

Подскажите, пожалуйста, а как именно его модифицировать, например, для загрузки файлов НА сервер?

   
 
 автор: cheops   (06.10.2006 в 23:44)   письмо автору
 
   для: Luce   (05.10.2006 в 21:29)
 

Для этого модификация не требуется, Web-приложение должно загружать файл.

   
Rambler's Top100
вверх

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