Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 28.06.2008, 18:29   #1
andrey4623
Форумчанин
 
Аватар для andrey4623
 
Регистрация: 31.05.2007
Сообщений: 266
По умолчанию загрузить файл на сервер с помощью ftp

почему следующий код не работает?
Код:
<html><head><title>Новая страница 1</title></head><body>   
<?php
   
        if (true)//(isset($_POST['F1']))
    {
        echo "1";
        $ftp_host = "ftp.narod.ru";    
        $c = ftp_connect($ftp_host);
        $result = ftp_login($c,"login","pass");
        
        if ((!$result)||(!$c)) {
            echo "Ошибка при подключении к FTP-серверу.";  
        } else {
            //загружаем файл
            $upload = ftp_put($c,"a.txt",basename($_FILES['F1']['name']),FTP_BINARY);
            
            if ($upload){
                echo "Файл загружен на сервер!";}else
                {echo "Ошибка при загрузке файла";}
        }
        
        
        ftp_close($c);
    }
    
?>


<form method="POST"  enctype="multipart/form-data" action="http://tashforum.croe.net/2.php">    
    <p><input type="file" name="F1" size="20"></p>
    <p><input type="reset" value="Сброс" name="B2">&nbsp;&nbsp;
    <input type="submit" value="Отправить" name="B1"></p>
    
</form></body></html>
и как тогда написать скрипт? он должен закачать файл, который выбрал юзер, на ftp.narod.ru с логином login и паролем pass
andrey4623 вне форума Ответить с цитированием
Старый 28.06.2008, 21:05   #2
Johnatan
Antimoderаtoris
Участник клуба
 
Регистрация: 08.02.2008
Сообщений: 1,251
По умолчанию

насколько я понимаю ты не указываешь какой файл нужно загрузить на сервер.
Я понимаю, что ты ему пихаешь название файла, который передал пользователь, но что ему с названия? Он его по всему твоему серверу должен искать? Почитай мануал по функции ftp_put.
98% из тысячи моих постов сделаны в профильном подфоруме. Я не накручиваю свои посты болтанием в "курилке", а ты?
Johnatan вне форума Ответить с цитированием
Старый 29.06.2008, 17:16   #3
andrey4623
Форумчанин
 
Аватар для andrey4623
 
Регистрация: 31.05.2007
Сообщений: 266
По умолчанию

Кое-что начинаю понимать. Я написал такой скрипт:
Код:
<html><head><title>Новая страница 1</title></head><body>

<?
    $host = "croe.net";
    $login = "login";
    $pass = "pass";
	if (!isset($_FILES['F1']))
	{
		
		$con = ftp_connect($host);
		$result = ftp_login($con,$login,$pass);
        if ((!$con)||(!$result)){
            echo "Ошибка при подключении к серверу.";
            ?>
                <form method="POST" enctype="multipart/form-data" action="<?echo $PHP_SELF;?>">    
                <p><input type="file" name="F1" size="20"></p>
                <p><input type="reset" value="Сброс" name="B2">&nbsp;&nbsp;
                <input type="submit" value="Отправить" name="B1"></p>
    
                </form></body></html>
                <? 
                die;}                     
                                   
        //ВОТ ЭТА СТРОКА
		$a=ftp_put($con, "c5.txt", "C:\\a.txt",FTP_ASCII);
        if ($a) {
            echo "Файл успешно загружен.";} else {
            echo "Ошибка загрузки файла";}       
	}
		?>


<form method="POST" enctype="multipart/form-data" action="<?echo $PHP_SELF;?>">	
	<p><input type="file" name="F1" size="20"></p>
	<p><input type="reset" value="Сброс" name="B2">&nbsp;&nbsp;
	<input type="submit" value="Отправить" name="B1"></p>
	
</form></body></html>
так вот: если запустить этот скрипт из-под отладчика (в моем случае - NuSphere PhpED, то файл C:\a.txt спокойно загружается на сервер, а если залить скрипт на хост и запустить его оттуда, то ошибка. Я так понял, что c:\a.txt он ищет там, где находится 1.php. А как тогда передать ему адрес файла на компьютере пользователя?
andrey4623 вне форума Ответить с цитированием
Старый 29.06.2008, 20:29   #4
Johnatan
Antimoderаtoris
Участник клуба
 
Регистрация: 08.02.2008
Сообщений: 1,251
По умолчанию

Ничего ты не начал понимать.
Чтобы закачать файл на фтп сервер, этот файл должен быть на самом сервере, где исполняется скрипт. Ты получаешь его через форму, а вот функции ftp_put ты должен скормить ПОЛНЫЙ путь этого файла.
То есть upload_tmp_dir + $_FILES['userfile']['tmp_name'].
Какой у тебя upload_tmp_dir уж разберись самостоятельно. Это папка для временных файлов сервера.
http://www.php.net/manual/ru/ini.cor...upload-tmp-dir

Если у тебя сервер стоит на Windows (в таком случае мои соболезнования) это будет что-то типа c:\wwwroot\tmp.
98% из тысячи моих постов сделаны в профильном подфоруме. Я не накручиваю свои посты болтанием в "курилке", а ты?
Johnatan вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как загрузить файл в FileList SeRhy Общие вопросы Delphi 9 19.10.2008 14:24
Как загрузить файл на сервер? fclmhooligan PHP 3 16.05.2008 21:45
Передача данных на сервер с помощью Delphi Арес Работа с сетью в Delphi 7 10.03.2008 13:29
Как загрузить текстовый файл в Delphi? aidyn Помощь студентам 7 30.05.2007 20:56
Помогите переслать файл с клиента на сервер mager Gamedev - cоздание игр: Unity, OpenGL, DirectX 8 23.02.2007 18:58