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

Форум PHP

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

 

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

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

тема: Работа с FTP
 
 автор: Vitek   (09.10.2005 в 10:50)   письмо автору
 
 

Хочу что бы сервер закачивал файл с машины клиента, написал такой скрипт

$conn_id = ftp_connect($server);
$login_result = ftp_login($conn_id,$login,$password);
ftp_put($conn_id,"file.txt","c:\temp\somefile.txt", FTP_ASCII);

Если запускаю скрипт на своей машине под Денвером все работает, файл закачивается. Но когда запускаю скрипт с сервера, то выпадает ошибка:

Unable to access c:\temp\somefile.txt

Я так понимаю, что сервер ищет на своей стороне файл c:\temp\somefile.txt, естественно не находит. Как прописать путь так, что бы сервер искал файл на стороне клиента?

   
 
 автор: cheops   (09.10.2005 в 13:28)   письмо автору
 
   для: Vitek   (09.10.2005 в 10:50)
 

Это невозможно. Скрипт может искать данные только на своём сервере. Это была бы огромная дыра, если с любого сервера можно было грабить любую клиентскую машину, да и медленно бы очень это происходило... Кроме того, на клиенте не установлен FTP-сервер и работать с ним по FTP-протоколу не получится, но даже если бы сервер был установлен, нужно было бы не загружать на него файл (ftp_put), а скачивать с него. Здесь простая перемена местами сервера и клиента просто не возможна... А почему не устраивает обычный upload файлов через HTML-форму?

   
 
 автор: Vitek   (09.10.2005 в 13:57)   письмо автору
 
   для: cheops   (09.10.2005 в 13:28)
 

С upload'ом какие-то проблемы, если выполняется скрипт


<FORM action="insert.php" method="POST" enctype="multipart/form-data">
<input type=file name=File>
<input type=submit name="Edit" value="Добавить">
</FORM>


<?
if(file_exists($File)) {
//Все в порядке - добавляем файл в каталог $dir с именем $name
Copy($File, "$dir/".basename($name));
}
else
echo "Ошибка добавления файла!!";
?>

То выпадает ошибка:

Warning: copy(): failed to open stream: Permission denied

К тому же просто интересно можно ли сделать закачку каким-нибудь другим способом

   
 
 автор: cheops   (09.10.2005 в 14:05)   письмо автору
 
   для: Vitek   (09.10.2005 в 13:57)
 

Следует обращаться к двумерному массиву $_FILES, например так как это описывается в теме по ссылке http://www.softtime.ru/scripts/upload.php. Ваш обработчик может выглядеть следующим образом
<? 
if(is_uploaded_file($_FILES['File']['name'])) 

//Все в порядке - добавляем файл в каталог $dir с именем $name 
Copy($_FILES['File']['tmp_name'], "$dir/".basename($name)); 

else 
echo 
"Ошибка добавления файла!!"
?>

   
Rambler's Top100
вверх

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