PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr

PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr (https://www.php-resource.de/forum/)
-   PHP Developer Forum (https://www.php-resource.de/forum/php-developer-forum/)
-   -   Datei übertragen (https://www.php-resource.de/forum/php-developer-forum/87825-datei-uebertragen.html)

jogisarge 25-10-2007 21:27

Datei übertragen
 
Hallo zusammen,

ich möchte gerne eine Datei per PHP auf einen Webserver regelmäßig(alle Stunde) übertragen.

Der empfangende Server erwartet von mir eine FTP-Verbindung im active mode.
Mein Provider verbietet mir aber eine aktive FTP-Verbindung.

Ich habe folgendes versucht (passives FTP) :
PHP-Code:

$ftp_server "xxx.de" ;
$ftp_user_name "444" ;
$ftp_user_pass "333" ;
$conn_id ftp_connect("$ftp_server");
$login_result ftp_login($conn_id"$ftp_user_name""$ftp_user_pass");
$passiv ftp_pasv($conn_id,TRUE);
if ((!
$conn_id) || (!$login_result))
{
    echo 
"Nix OKI";
}
else
{
    echo 
"OKI";
    
$upload1 ftp_put($conn_id"dat.dat""./dat.dat"FTP_ASCII);
    }


so läuft das Script endlos und bricht irgendwann ab (aktives FTP).

das allerdings geht - gibt aber Arger mit meinem Provider
PHP-Code:

$ftp_server "xxx.de" ;
$ftp_user_name "444" ;
$ftp_user_pass "333" ;
$conn_id ftp_connect("$ftp_server");
$login_result ftp_login($conn_id"$ftp_user_name""$ftp_user_pass");
$passiv ftp_pasv($conn_id,FALSE);
if ((!
$conn_id) || (!$login_result))
{
    echo 
"Nix OKI";
}
else
{
    echo 
"OKI";
    
$upload1 ftp_put($conn_id"dat.dat""./dat.dat"FTP_ASCII);
    }


Hat jemand ne idee?
Gibt es vielleicht auch noch Alternativen zur FTP-Übertragung ?

Gruß Jogi

combie 25-10-2007 21:55

Zitat:

Gibt es vielleicht auch noch Alternativen zur FTP-Übertragung ?
Sicherlich!!
HTTP POST

jogisarge 25-10-2007 23:06

Hallo nochmal,

so habe ich es versucht:
PHP-Code:

$file "";
$fp1 fopen("./TEST.DAT","r");
$kennung base64_encode("user:pass");
while(!
feof($fp1))
{
    
$file1 fgets($fp11024);
    
$file $file.$file1;
}
$data "";
$fp fsockopen("server.de",21,$errstr,$errno);
if(!
$fp)
{
    die();
}
else
{
    
$data addslashes($file);
    
$data $file;
    
fputs($fp"POST HTTP/1.1\r\n");
    
fputs($fp"Host: server.de\r\n");
    
fputs($fp"Authorization: Basic ".$kennung." \r\n");
    
fputs($fp"Content-length: "strlen($data) ."\r\n");
    
fputs($fp"Content-type: application/x-www-form-urlencoded\r\n");
    
fputs($fp"Connection: close\r\n\r\n");
    
fputs($fp$data);


Es tut sich aber nichts.

Ich wollte die Datei TEST.DAT an den Server schicken.

Kann mir da noch jemand helfen ?

combie 25-10-2007 23:32

Zum senden der Datei eignen sich Curl und snoopy ganz gut.....
Und auf dem Server muß natürlich ein PHP Script auf die Datei warten :D

jogisarge 25-10-2007 23:43

Hallo nochmal,

auf der gegenseite wartet kein php programm.
ich habe einen zugang und möchte dort eine datei ablegen.

combie 26-10-2007 00:21

Zitat:

auf der gegenseite wartet kein php programm.
Das ist aber schlecht, dann gehts mit HTTP nicht...

Slava 26-10-2007 01:10

Zitat:

Original geschrieben von combie
Das ist aber schlecht, dann gehts mit HTTP nicht...
geht doch, aber sie bleibt im tempordner mit einem tempnamen einfach liegen :D

eigentlich erwartet ein http-upload boundary

frage wurde eben in einem anderem forum gestellt, wo der fragesteller von mir ein paar links bekommen hat.

combie 26-10-2007 01:32

Zitat:

aber sie bleibt im tempordner mit einem tempnamen einfach liegen
Glaube ich nicht!
Der Apache liefert "das Päckchen" als PostRawData o.ä. an PHP. Bevor PHP das Script startet, erzeugt es die Datei im TempOrdner.
Also, ohne PHP keine Datei ;)
(kann allerdings sein, dass andere Sprachen das änlich abhandeln)

jogisarge 26-10-2007 09:56

Hallo nochmal,

Also, ich fasse nochmal zusammen.

Per FTP darf ich nicht uploaden, da aktives FTP nicht erlaubt ist - der empfangende Server erwartet das aber.

ich habe von dem Server ftp://empfang.de
einen FTP-Zugang ben:pwd


Nun möchte ich per HTTP POST die Datei übertragen.
Mir ist aber nicht ganz klar, wie ich das machen soll.

Mein Versuch:
PHP-Code:

$file "";
$fp1 fopen("./TEST.DAT","r");
$kennung base64_encode("ben:pwd");
while(!
feof($fp1))
{
    
$file1 fgets($fp11024);
    
$file $file.$file1;
}
$data "";
$fp fsockopen("empfang.de",21,$errstr,$errno);
if(!
$fp)
{
    die();
}
else
{
    
$data addslashes($file);
    
$data $file;
    
fputs($fp"POST /empfang.php HTTP/1.1\r\n");
    
fputs($fp"Host: empfang.de\r\n");
    
fputs($fp"Authorization: Basic ".$kennung." \r\n");
    
fputs($fp"Content-length: "strlen($data) ."\r\n");
    
fputs($fp"Content-type: application/x-www-form-urlencoded\r\n");
    
fputs($fp"Connection: close\r\n\r\n");
    
fputs($fp$data);
}
while(!
feof($fp))
{
    
$fget fgets($fp128);
    
$daten .= $fget;
}
fclose($fp);
echo 
$daten

Wenn ich dass laufen lasse, dann kommt :


Auf der Gegenstelle wäre das script empfang.php, welches die Datei entgegen nimmt.
Wie müsste das aussehen, wenn dass im gleichen Ordner liegt, in dem die Datei gespeichert werden soll?

Bitte helft mir, ich komm net weiter.
PHP-Code:

220 wzd server ready530 Invalid login sequence 


jahlives 26-10-2007 10:49

Wenn du auf der Empfangsseite eine php Datei hast, warum machst du dann nicht einfach ein Upload Form?

arkos 26-10-2007 10:51

Zitat:

Original geschrieben von jahlives
Wenn du auf der Empfangsseite eine php Datei hast, warum machst du dann nicht einfach ein Upload Form?
weil er sicher nicht alle stunde was AKTIV uploaden will :D

Zitat:

ich möchte gerne eine Datei per PHP auf einen Webserver regelmäßig(alle Stunde) übertragen.

jahlives 26-10-2007 11:49

Zitat:

weil er sicher nicht alle stunde was AKTIV uploaden will
Gutes Argument. Sollte wohl nicht nur den letzten Post lesen ;)

Gruss

tobi

combie 26-10-2007 12:32

Serverseitig:
http://de.php.net/manual/de/features.file-upload.php


Clientseitig:
http://de2.php.net/manual/de/functio...ost-fields.php
http://de2.php.net/manual/de/ref.curl.php#78328


Alle Zeitangaben in WEZ +2. Es ist jetzt 15:32 Uhr.

Powered by vBulletin® Version 3.8.2 (Deutsch)
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.
Search Engine Friendly URLs by vBSEO 3.3.0
[c] ebiz-consult GmbH & Co. KG