IMHO.WS

IMHO.WS (http://www.imho.ws/index.php)
-   Веб-программирование (http://www.imho.ws/forumdisplay.php?f=29)
-   -   Помогите аплоадить файлы на Ftp. (http://www.imho.ws/showthread.php?t=55202)

KittenCom 30.03.2004 12:34

Помогите аплоадить файлы на Ftp.
 
<form enctype="multipart/form-data" action="index.php" method="POST">
<input type="hidden" name="f" value="1">
Send this file: <input name="userfile" type="file">
<input type="submit" value="Send File">
</form>
<?php
#phpinfo();
if (isset ($_POST['f']))
{
#$uploaddir = 'http://www.name_site/fotos/';
$uploaddir = 'image/';
$uploadfile = $uploaddir . $_FILES['userfile']['name'];
print "<pre>";
if (move_uploaded_file($_FILES['userfile']['tmp_name'
], $uploadfile)) {
print "File is valid, and was successfully uploaded. ";
print "Here's some more debugging info:\n";
print_r($_FILES);
} else {
print "Possible file upload attack! Here's some debugging info:\n";
print_r($_FILES);
}
print "</pre>";
}
else {echo "enter eny file destination";}
?>
---------- это как я понимаю просто аплоадить файлы...Но с фтп насколько я догадываюсь должно дело по- другому происходить, т.к. на FTP есть логин и пароль,права ведь не у всех есть???Как это правильно сделать расталкуйте?
Выше- видите скрипт - это максимум покаместь до чего я додумалась....В чем трабл???

medved2002 30.03.2004 12:37

http://ru.php.net/manual/ru/ref.ftp.php

Добавлено через 1 минуту:
Или
http://www.faqs.org/rfcs/rfc959 и http://ru.php.net/manual/ru/function.fsockopen.php

KittenCom 30.03.2004 14:10

Странно, читала мануалку а этого не заметла!!!хм. спасибо. ща пошаманю:)

Добавлено через 1 час и 32 минуты:
<form enctype="multipart/form-data" action="upload.php" method="POST">
<input type="hidden" name="f" value="1">
Send this file: <input name="userfile" type="file">
<input type="submit" value="Send File">
</form>
<?php
if (isset ($_POST['f']))
{
$file=$_FILES['userfile'];
$remote_file=$_FILES['userfile'];
$ftp_server= 'ftp://desigto@10.0.2.5/sit/news_images/';
$conn_id = ftp_connect($ftp_server);
$ftp_user_name='desigto';
$ftp_user_pass='desigto';
$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass,'w');
if (ftp_fput($conn_id, $remote_file, $file, FTP_ASCII)) {
echo "successfully uploaded $file\n";
} else {
echo "There was a problem while uploading $file\n";
}
ftp_close($conn_id);
}
?>
<a href='ftp://desigto@10.0.2.5/sit/news_images/'> link</a>







В чем трабл??? не работает...пишет
Fatal error: Call to undefined function: ftp_connect() in /usr/home/tonka/ftp/upload.php on line 12
это значит что он не может подконектиться к фтп...ПОЧЕМУ????????
localhost тоже самое говорит...я не знаю проадреса....помогите.... (рыдая от горя... )

medved2002 30.03.2004 14:11

А у тебя на локалхосте фтп стоит? Попробуй сконнектиться обычным фтп клиентом

KittenCom 30.03.2004 14:14

http://10.0.2.5/~tonka/upload.phpну вообще когда я писала скл запросы...на пхп...я чиплялась к localhost

Добавлено через 1 минуту:
что такое фтп клиент.?наверное да

medved2002 30.03.2004 14:23

Короче говоря когда ты обращаешься к http://10.0.2.5/~tonka/upload.php это ты обращаешься к HTTP серверу.
А когда ты обращаешься к ftp://10.0.2.5/ это ты обращаешься к FTP серверу.

Вот не факт что он у тебя там стоит.

А фтп клиент - их много я лично пользуюсь встроенным в Far, или Total Commander

KittenCom 30.03.2004 14:24

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

medved2002 30.03.2004 14:31

Ясно - не заметил - так нельзя
$ftp_server= 'ftp://desigto@10.0.2.5/sit/news_images/';
$conn_id = ftp_connect($ftp_server);

Ибо RFTM Цитата: "host shouldn't have any trailing slashes and shouldn't be prefixed with ftp://."

Надо
$ftp_server= '10.0.2.5'
$conn_id = ftp_connect($ftp_server);
ftp_login($conn_id, $ftp_user_name, $ftp_user_pass,'w');
ftp_chdir ($conn_id, 'каталог');

KittenCom 30.03.2004 14:40

$remote_file-это ведь имя файла не не директория куда файл ложить
ftp_chdir ($conn_id, 'каталог');
каталог = 'ftp://tonka@10.0.2.5/sit/news_images/';
да?


В конечном результате у меня выходит
<form enctype="multipart/form-data" action="upload.php" method="POST">
<input type="hidden" name="f" value="1">
Send this file: <input name="userfile" type="file">
<input type="submit" value="Send File">
</form>
<?php
if (isset ($_POST['f']))
{
$file=$_FILES['userfile'];
$remote_file=$_FILES['userfile'];
$ftp_server= '10.0.2.5 ';
$conn_id = ftp_connect($ftp_server);


ftp_login($conn_id, $ftp_user_name, $ftp_user_pass,'w');
ftp_chdir ($conn_id, '/sit/news_images/');
$ftp_user_name='desigto';
$ftp_user_pass='desigto';
$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass,'w');
if (ftp_fput($conn_id, $remote_file, $file, FTP_ASCII)) {
echo "successfully uploaded $file\n";
} else {
echo "There was a problem while uploading $file\n";
}
ftp_close($conn_id);
}
?> это верно?






Кстати этот скрипт тоже возращает
Fatal error: Call to undefined function: ftp_connect() in /usr/home/tonka/ftp/sit/upload.php on line 12

Hubbitus 30.03.2004 15:20

Ну во-первых чтобы использовать ФТП-функции PHP должен быть собран с опцией --enable-ftp (У Вас так?)
А во-вторых, если "open-оболочки" включены то для записи (но не удаления) файла на FTP можно использовать стандартную функцию copy!

KittenCom 30.03.2004 15:31

А как проверить включена ли эта функция?--enable-ftp и скрипт какой писать надо?
дело в том что я когда то пробовала с копией работать...но мне сказали что лучше аплоудом!

Merlin Cori 30.03.2004 16:07

1. зачем 2 раза логин?
2. вызов логин неверен
ftp_login(int ftp_stream, string username, string password);
3. вызов ftp_fput неверен
PHP код:

<?php

// open some file for reading
$file 'somefile.txt';
$fp fopen($file'r');

// set up basic connection
$conn_id ftp_connect($ftp_server);

// login with username and password
$login_result ftp_login($conn_id$ftp_user_name$ftp_user_pass);

// try to upload $file
if (ftp_fput($conn_id$file$fpFTP_ASCII)) {
   echo 
"Successfully uploaded $file\n";
} else {
   echo 
"There was a problem while uploading $file\n";
}

// close the connection and the file handler
ftp_close($conn_id);
fclose($fp);

?>

Если все попробовала и ничего не получилось, прочти инструкцию. Доки читать надо

KittenCom 30.03.2004 16:23

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

Hubbitus 30.03.2004 16:31

Цитата:

KittenCom:
А как проверить включена ли эта функция?--enable-ftp и скрипт какой писать надо?
<? phpinfo()?>
Цитата:

KittenCom:
дело в том что я когда то пробовала с копией работать...но мне сказали что лучше аплоудом!
Что значит лучше? В данном случае когда нужно просто положить на ФТП проще (и лучше) именно copy(). Просто так можно только записать на фтп, но нельзя стереть (и вроде изменить), поэтому если все это требуется то тогда необходимо использовать фтп-функции....

KittenCom 30.03.2004 16:42

<? phpinfo()?> написала выпал большой список...
А Hubbitus когда нибудь копировал картинку на фтп таким скриптом?о скрипте копи идет речь

Hubbitus 30.03.2004 16:48

Цитата:

KittenCom:
<? phpinfo()?> написала выпал большой список...
Ну дак и посмотри включена ли там поддержка ФТП и "open-оболочки"!!!
Цитата:

KittenCom:
А Hubbitus когда нибудь копировал картинку на фтп таким скриптом?о скрипте копи идет речь
Да, я так делал в свое время (но если честно, не от хорошей жизни - но это не значит что это плохо или неправильно)
И вообще зачем требуется Вам именно на фтп класть картинку? Обычно это на сервере и храниться...

KittenCom 30.03.2004 16:59

<?php
$uploaddir = '/var/www/uploads/';
$uploadfile = $uploaddir. $_FILES['userfile']['name'];
print "<pre>";
if (move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile)) {
print "File is valid, and was successfully uploaded. ";
print "Here's some more debugging info:\n";
print_r($_FILES);
} else {
print "Possible file upload attack! Here's some debugging info:\n";
print_r($_FILES);
}
?>
Ок. Это близко? Но фтп...это все мои суждения об фтп разрушает...
а можешь скинуть исходник?Я думаю я разберусь дальше????ПЛИЗ
А ЛОГИН А ПАРОЛЬ? НЕ ПОДСКАЖЕшь куда их девать?это что любой может копировать? файлы..

Hubbitus 30.03.2004 17:06

Цитата:

KittenCom:
$uploaddir = '/var/www/uploads/';
Если у тебя оболочки включены, то достаточно просто изменить $uploaddir, ну приблизительно так:
$uploaddir='ftp://user:рassword@ftp.server.com/uploads/'; (Ну соответственно реальный пользователь, пароль, ФТП, и путь...;) )
Цитата:

KittenCom:
Но фтп...это все мои суждения об фтп разрушает...
Не понял, что "это"? И почему разрушает? И какие суждения?

KittenCom 30.03.2004 17:23

ой мои суждения- это наверное не на этом форуме нужно обсуждать, честно думала меня здесь пошлют с моими аплоадами...я уже 5 способов новых надыбала И ВСЕ НЕ КАК У ЛЮДЕЙ БЛИН( ну вро де и нашла а подставить не могу вроде и подходит и все равно не то....не очень моя дружба с пхп удалась:) да ну не об этом сейчас попробую если получится:))) я взорвусь от счастья

Добавлено через 9 минут:
Warning: move_uploaded_file(ftp://...@10.0.2.5/sit/news_images/1079549297_46941.gif) [function.move-uploaded-file]: failed to create stream: FTP server reports 530 Login incorrect.
in /usr/home/tonka/ftp/sit/upload.php on line 12

Warning: move_uploaded_file() [function.move-uploaded-file]: Unable to move '/var/tmp/phpYIPsDH' to 'ftp://tonka@10.0.2.5/sit/news_images/1079549297_46941.gif' in /usr/home/tonka/ftp/sit/upload.php on line 12
Possible file upload attack! Here's some debugging info:
Array
(
[userfile] => Array
(
[name] => 1079549297_46941.gif
[type] => image/gif
[tmp_name] => /var/tmp/phpYIPsDH
[error] => 0
[size] => 2389
)

)
Немного не ожидала такой реакции...в чем проблема?

Добавлено через 1 минуту:
Hubbitus
<form enctype="multipart/form-data" action="upload.php" method="POST">
<input type="hidden" name="f" value="1">
Send this file: <input name="userfile" type="file">
<input type="submit" value="Send File">
</form>
<?php
if (isset ($_POST['f']))
{
$uploaddir = 'ftp://tonka@10.0.2.5/sit/news_images/';
$uploadfile = $uploaddir. $_FILES['userfile']['name'];
print "<pre>";
if (move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile))
{
print "File is valid, and was successfully uploaded. ";
print "Here's some more debugging info:\n";
print_r($_FILES);
}
else {
print "Possible file upload attack! Here's some debugging info:\n";
print_r($_FILES);
}
}
?>

<a href='ftp://desigto@10.0.2.5/sit/news_images/'> link</a>


Где ошибка? подскажи может путь $uploaddir = 'ftp://tonka@10.0.2.5/sit/news_images/'; не так?

Hubbitus 30.03.2004 17:31

Там же написано в чем проблема (ailed to create stream: FTP server reports 530 Login incorrect.) - не верный логин и/или пароль.
Я вообще не вижу чтобы был указан пароль!
А ссылка указанная внизу - не работает как и следовало ожидать! (кстати HTML выключен)

KittenCom 30.03.2004 17:51

нудопустим пароль и логин desigto desigto - что дальше писать как правильно?
$uploaddir = 'ftp://tonka@10.0.2.5/sit/news_images/';
$uploaddir = 'ftp://desigto:desigto/sit/news_images/'; -так? так не работает как по другому?
а то что изменение ссылки той это я сразу поняла

Hubbitus 30.03.2004 20:53

$uploaddir='ftp://desigto:desigto@10.0.2.5/sit/news_images/'; - так должно быть по идее.
А при чем здесь tonka, точно логин и пароль desigto?

KittenCom 31.03.2004 11:08

нет конечно , я же не могу все пароли и логины здесь обсуждать, это наверное не безопасно.Слушай, а мне в другом разделе сказали что надо порт написать:)Что по этому поводу скажешь?:)

Добавлено через 10 минут:
УРА ВСЕ РАБОТАЕТ!:)СПАСИБО!!!!!!!!!!!!!!!!!!!!!НЕОПИСУЕМАЯ РАДОСТЬ ПОГЛОЩАЕТ МЕНЯ СЧАСТЬЕМ:) И РАБОТАЮЩЕЙ ПРОГРАММОЙ:)С_П_А_С_И_Б_О

Hubbitus 31.03.2004 15:44

В принципе порт если он стандартный (21) прописывать не обязательно, но и не помешает...

Заработало как я и сказал? Если нет, то что было?

Да наздоровье...

KittenCom 31.03.2004 16:37

ПРИВЕТ ДОРОГОЙ Hubbitus!
Ты даже себе представитьне можешь на сколько я тебе благодарна, билась над траблом фиг знает сколько времени- 2мес. точно ...может чуть меньше...ну конечно не все время..но постоянно возвращалась к этой проблеме...страшное слово АППЛОАД и я его одолела благодаря тебе:)
я тебе даже голос добавила:) Просто даже в сетях мне не дали админы дельного совета:)А ты ....
Ух и всего то:) Кстати я вчера я почти дошла до этого...сама....дуже вдячна!
$uploaddir='ftp://desigto:desigto@10.0.2.5/sit/news_images/';

Hubbitus 31.03.2004 17:11

Ну получилось что на комплимент напросился :p ... я вообще-то интереса ради спросил...

Еще раз поздравляю!

KittenCom 31.03.2004 17:17

Hubbitus слушай, походу просвяти что такое звездочки- рейтинг....я тут слегка не понимаю:)

Hubbitus 31.03.2004 17:32

Вообще-то это уже флейм пошел - почитай правила форума, там же кстати и про звездочки написано..., например сдесь http://www.imho.ws/announcement.php?s=&forumid=29


Часовой пояс GMT +4, время: 12:48.

Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.