PHP ftp_put Warnung Warnung: ftp_put() [function.ftp-put]: Type set to I.
Wenn ich versuche zum hochladen von Dateien mit PHP ftp_put Funktion, früher war es erroring:
Warning: ftp_put() [function.ftp-put]: No data connection
Nun, ich versuchte, den passiv-Modus auf:
ftp_pasv($conn_id, true);
dann kommt Fehler:
Warning: ftp_put() [function.ftp-put]: Type set to I. in
ftp_login richtig gemacht wird, und es sagt Erfolgreich.
Nun gibt es neue Warnung: Warnung: ftp_put() [function.ftp-put]: abc.txt: Cannot open or remove a file containing a running program.
Irgendwelche Ideen, warum die Datei nicht überträgt ?
Dank !
Hier ist mein code-snippet:
$conn_id = ftp_connect($ftp_server) or die("Couldn't connect to $ftp_server");
$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass) or die("You do not have access to this ftp server!");
if ((!$conn_id) || (!$login_result)) {
//wont ever hit this, b/c of the die call on ftp_login
echo "<span style='color:#FF0000'><h2>FTP connection has failed! <br />";
echo "Attempted to connect to $ftp_server for user $ftp_user_name</h2></span>";
exit;
} else {
//echo "Connected to $ftp_server, for user $ftp_user_name <br />";
}
//turn passive mode on
ftp_pasv($conn_id, true);
$upload = ftp_put($conn_id, $destination_file.$name, $filename, FTP_BINARY);
if (!$upload) {
echo "<span style='color:#FF0000'><h2>FTP upload of $filename has failed!</h2></span> <br />";
} else {
echo 'Uploaded';
}
ftp_close($conn_id);
- können Sie bitte veröffentlichen Sie Ihren code?
- Sind Sie unter Angabe der stream als erstes argument?
- nun Hinzugefügt.. pl führe mich weiter
- Wo ist der FTP-server liegt? Ich sah dieses problem in einigen buggy FTP-server, auf dem der Datei-handle nicht geschlossen ist und es glaubt, dass es immer noch beim kopieren von Daten, vor allem, wenn wir vergessen, um anzugeben, ftp_close
- ftp_close ist es auf den code.. lassen Sie mich auch hier 🙂
- Yep Yep nicht sagen, dass der code nicht enthalten, ftp_close, aber ist mir passiert. Wenn Sie Zugriff auf den FTP-server und kann den Dienst neu starten, vielleicht können Sie versuchen, dass.
- nun, das funktioniert einfach nicht für mich als gut, aber strange Lösung, die ich fand ist, dass ich eine Verbindung zu live-chat und Fragen Sie Sie, um zu überprüfen, wenn ich den gleichen 2-3 mal und dann versuchen, die ftp-übertragung funktioniert.. komisch, aber es funktioniert bei mir jetzt..
Du musst angemeldet sein, um einen Kommentar abzugeben.
Den letzten Fehler, die Sie sehen, passiert, wenn der FTP-daemon ist fest mit der hochgeladenen Datei öffnen und warten, für Sie zu schreiben.
Immer wenn Sie erfolgreich eine Verbindung über einen FTP-server, bereit sein, um die enge Verbindung mit der folgenden Funktion, wenn der Prozess abgeschlossen oder beendet wegen Fehler.
Ist es möglich dein script so dass die verbindungen offen sind und der FTP-server ist immer verwirrt von diesem. Versuchen Sie, ftp_close in den entsprechenden stellen und sehen, ob das Skript läuft reibungslos.
http://php.net/ftp_pasv
Ich wurde empfangen von gleichen (nicht sehr aussagekräftigen) Fehlermeldung
E_WARNING ftp_get(): Type set to I.
.Fand ich heraus, dass es ist, weil server läuft PHP nicht sichtbare öffentliche IP (es ist ein virtueller server auf meiner workstation).
Lösung wurde mit passiven Modus. Default-Einstellung (active-Modus) nicht haben problem auf die live-server, da der live-server hat sichtbare öffentliche IP-Adresse.
ftp_pasv
Aufruf muss erfolgen, nachdem der Anmelde-oder es wird nicht funktionieren.Habe ich versucht, mit Hilfe der ftp-Funktionen in PHP und fand es war viel einfacher zu bedienen
file_put_contents()
wie folgt:Können Sie noch überprüfen, ob es erfolgreich war und all das gute Zeug natürlich auch.
Ihrem ftp-setup sieht ok aus, versuchen Sie das mit dem Namen $destination_file.$name in eine einzelne variable dump der variable und stellen Sie sicher, diese Datei ist vorhanden mit absoluten Pfad, wenn es nicht im selben Ordner wie das Skript. Das ist das einzige detail, das ich sah, in einem kurzen Blick, konnte choke hochladen.
Stellen Sie sicher, dass Ihre Datei wird nicht geöffnet in einem editor! Und wenn die Datei ist .txt, die Sie verwenden können, FTP_ASCII obwohl binäre sollte ein problem nicht verursachen.
Guten Glück!
Fand ich seine Lösung wie folgt:
Ich habe gerade mit EUKHOST-server-Unterstützung
Wichtigste Punkt dabei war, dass die support-person, die jetzt eröffnet eine
passive port
Bereich für FTP auf dem server, und er erzählte uns, zu versuchen, die FTP-upload-jetzt. Wenn Sie könnte versuchen Sie es mit einigen testfile und es ging durch erfolgreich..Fügen Sie folgende Zeilen am Ende
öffnen /etc/vsftpd.conf und hinzufügen
pasv_promiscuous=JA___ am Ende.