php-resource



Zurück   PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr > Entwicklung > PHP Developer Forum
 

Login

 
eingeloggt bleiben
star Jetzt registrieren   star Passwort vergessen
 

 

 


PHP Developer Forum Hier habt ihr die Möglichkeit, eure Skriptprobleme mit anderen Anwendern zu diskutieren. Seid so fair und beantwortet auch Fragen von anderen Anwendern. Dieses Forum ist sowohl für ANFÄNGER als auch für PHP-Profis! Fragen zu Laravel, YII oder anderen PHP-Frameworks.

Antwort
 
LinkBack Themen-Optionen Thema bewerten
  #1 (permalink)  
Alt 09-06-2005, 10:25
bernina
 Newbie
Links : Onlinestatus : bernina ist offline
Registriert seit: Jun 2005
Beiträge: 24
bernina ist zur Zeit noch ein unbeschriebenes Blatt
Standard Download per FTP schreibt auf dem Server???

Hallo zusammen,

ich versuche, Dateien per FTP vom Server auf eine lokale Maschine zu bekommen.
Mein Problem ist, dass die Dateien nicht auf dem Client geschrieben werden, sondern in das entsprechende Zielverzeichnis auf dem Server (falls es existiert, ansonsten gibt’s natürlich eine Fehlermeldung).

Die Datei „$source_file“ liegt auf dem Server und ist komplett mit Pfadangabe.
„$target_file“ habe ich (mittlerweile) soweit vereinfacht, dass ich dort einen festen Pfad (d:\download) angegeben habe und per „basename“ den reinen Dateinamen von „$source_file“ anhänge.

Ergebnis des Scriptes ist eine downgeloadete Datei im entsprechenden Verzeichnis der Servers und nicht des Clients.
Auch Versuche mit „ftp_pasv“ haben keine Verbesserung gebracht – wobei mir allerdings nicht klar ist, wie ich überprüfen kann, ob der Passivmodus nun wirklich aktiviert ist oder nicht (und ob das für mein Problem überhaupt relevant ist). Als Ergebnis der Funktion „ftp_pasv“ wird mir ja nur geliefert, OB der Befehl funktioniert hat, aber nicht der Status der Verbindung.

Irgendwelche Ideen dazu?

PHP-Code:
$conn_id ftp_connect ($host); 
$login_result ftp_login ($conn_id"anonymous"""); 
// $passiv=ftp_pasv($conn_id, 1); 

if ((!$conn_id) || (!$login_result)) 

echo 
"Ftp-Verbindung nicht hergestellt!"
echo 
"Verbindung mit $host als Benutzer $user nicht möglich"
die; 

else 

echo 
"<br>Verbunden mit \"$host\" als Benutzer \"$user\" <br> "


$target_file="d:\\download\\" basename($source_file); 

$getload ftp_get($conn_id$target_file$source_fileFTP_BINARY); 

if (!
$getload

echo 
"Ftp get war fehlerhaft!"

else 

echo 
"<br>Datei $source_file vom $host in das Verzeichnis $target_file geschrieben"


PHP: Version 5
Server OS: Windows

Für Tipps wäre ich dankbar!!
Grüße aus Köln
Jürgen
Mit Zitat antworten
freelancermap.de - IT Projektvermittlung für Selbständige und Freiberufler
  #2 (permalink)  
Alt 09-06-2005, 10:49
Kropff
  Administrator
Links : Onlinestatus : Kropff ist offline
Registriert seit: Mar 2002
Ort: Köln
Beiträge: 11.766
Kropff befindet sich auf einem aufstrebenden Ast
Standard

PHP-Code:
$target_file="d:\download\" . basename($source_file); 
das sieht aber nach einem lokalen pfad aus.

setz den pfad mal so : \\name_des_clients\ordner

gruß
peter
__________________
Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
Meine Seite

Geändert von Kropff (09-06-2005 um 10:53 Uhr)
Mit Zitat antworten
  #3 (permalink)  
Alt 09-06-2005, 11:21
bernina
 Newbie
Links : Onlinestatus : bernina ist offline
Registriert seit: Jun 2005
Beiträge: 24
bernina ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Hallo Peter,

die Darstellung des PHP Codes hatte mich auch zuerst irritiert. Da werden offensichtlich diverse "\" gefiltert.
Fakt ist, dass das Script als solches funktioniert, also FTP connect, login, get - nur wird die Datei nicht auf den Client, sondern auf den Server geschrieben.

Gruß
Jürgen
Mit Zitat antworten
  #4 (permalink)  
Alt 09-06-2005, 11:38
mrhappiness
 PHP Guru
Links : Onlinestatus : mrhappiness ist offline
Registriert seit: Oct 2002
Beiträge: 14.890
mrhappiness ist zur Zeit noch ein unbeschriebenes Blatt
mrhappiness eine Nachricht über AIM schicken mrhappiness eine Nachricht über Yahoo! schicken
Standard Re: Download per FTP schreibt auf dem Server???

Zitat:
Original geschrieben von bernina
ich versuche, Dateien per FTP vom Server auf eine lokale Maschine zu bekommen.
Und auf der lokalen Maschine läuft ein FTP-Server, zu dem du eine Verbindung aufbauen kannst?

Außerdem speichert man Daten auf einem FTP-Server mit ftp_put

Dein Skript baut die Verbindung zu einem FTP-Server auf und lädt eine Datei runter.
Die Datei wird auf dem PC gespeichert, auf dem auch der Webserver läuft.
__________________
Ich denke, also bin ich. - Einige sind trotzdem...
Mit Zitat antworten
  #5 (permalink)  
Alt 09-06-2005, 12:00
bernina
 Newbie
Links : Onlinestatus : bernina ist offline
Registriert seit: Jun 2005
Beiträge: 24
bernina ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zitat:
Und auf der lokalen Maschine läuft ein FTP-Server, zu dem du eine Verbindung aufbauen kannst?
Nein, der FTP Server läuft gemeinsam mit dem Web- und dem PHP Server auf derselben Maschine.

Zitat:
Außerdem speichert man Daten auf einem FTP-Server mit ftp_put
Ich möchte die Datei nicht auf dem FTP Server, sondern auf dem Client speichern.

Zitat:
Dein Skript baut die Verbindung zu einem FTP-Server auf und lädt eine Datei runter.
Die Datei wird auf dem PC gespeichert, auf dem auch der Webserver läuft.
Wie kriege ich ihn dazu, die Datei auf dem anfragenden Client zu speichern? Das ist genau mein Problem.

Oder funktioniert die Installation von Web-, PHP- und FTP-Server auf derselben Maschine prinzipiell nicht?

Gruß
Jürgen
Mit Zitat antworten
  #6 (permalink)  
Alt 09-06-2005, 12:02
wahsaga
  Moderator
Links : Onlinestatus : wahsaga ist offline
Registriert seit: Sep 2001
Beiträge: 25.236
wahsaga befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Original geschrieben von bernina
Wie kriege ich ihn dazu, die Datei auf dem anfragenden Client zu speichern?
in dem du ihm diese zum download anbietest.
http://www.php-faq.de/q/q-datei-download.html

Zitat:
Oder funktioniert die Installation von Web-, PHP- und FTP-Server auf derselben Maschine prinzipiell nicht?
doch - aber was hat das mit deinem problem zu tun?
__________________
I don't believe in rebirth. Actually, I never did in my whole lives.
Mit Zitat antworten
  #7 (permalink)  
Alt 09-06-2005, 12:53
bernina
 Newbie
Links : Onlinestatus : bernina ist offline
Registriert seit: Jun 2005
Beiträge: 24
bernina ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Tja, manchmal sitzt man ja auf der Leitung...
Mir ist jetzt wenigstens schon mal klar geworden, dass ich mein Problem gar nicht per FTP lösen kann, weil der Server am falschen Ende läuft...

Zitat:
in dem du ihm diese zum download anbietest.
Danke für den Tipp. Auf die Seite war ich auch schon mal gestoßen, wollte mich aber damit nicht auseinander setzen. Das bleibt mir aber wohl doch nicht erspart. Die Funktionsweise ist mir nämlich momentan überhaupt noch nicht klar (deshalb hatte ich eine Lösung erst mal hier bei den Einsteigern gesucht....).
Ich werd' mich also jetzt mal mit diesen Headern beschäftigen. Mal sehen was dabei rauskommt.
Mit Zitat antworten
  #8 (permalink)  
Alt 09-06-2005, 14:35
bernina
 Newbie
Links : Onlinestatus : bernina ist offline
Registriert seit: Jun 2005
Beiträge: 24
bernina ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zitat:
in dem du ihm diese zum download anbietest.
Im Prinzip geht's.
Allerdings habe ich jetzt wieder das Problem, das ich eigentlich per FTP umgehen wollte. Mit der HEADER-Lösung kann ich jeweils nur eine Datei übertragen, wobei der Anwender dies auch jedesmal bestätigen muss (wie beim download mit <input>).
Ich möchte aber mehrere Dateien gleichzeitig ohne weitere Eingriffe des Anwenders downloaden. Die gewünschten Dateien hat der Anwender vorher per checkbox selektiert.
Da ich den Dateinamen, unter dem die Datei gespeichert werden soll, mitgebe, bräuchte ich nur die Möglichkeit, jedesmal die explizite Bestätigung zum Download zu unterbinden also quasi den Download im Hintergrund.
Geht das?


Vielleicht noch zur Erklärung:
Das Ganze spielt sich firmenintern ab. Es gibt also keine sicherheitstechnischen Bedenken bezüglich des Downloads. Die Anwender sollen innerhalb der Anwendung die Möglichkeit haben, Daten, die in einer DB2 gespeichert sind (und vor dem Download auf die Serverplatte geschrieben werden), als Datei auf ihren Rechner zu bekommen.
Mit Zitat antworten
  #9 (permalink)  
Alt 09-06-2005, 14:57
Quetschi
 PHP Expert
Links : Onlinestatus : Quetschi ist offline
Registriert seit: Dec 2004
Beiträge: 3.134
Quetschi wird schon bald berühmt werden
Standard

Firmenintern sollte es mit den File-funktionen von PHP möglich sein sofern dies nicht durch irgendwelche Sicherheitseinstellungen unterbunden wird. Allerdings darfst in diesem Script keine Festplatte direkt mit D:\... ansprechen, so bleibst immer auf dem Rechner auf dem das Skript läuft, sondern so wie es Kropff bereits gesagt hat:

\\name_des_clients\freigabename_der_platte\verzeichnis

Mit FTP wirst nix erreichen, da kannst du dich auf den Kopf stellen, außer du installierst bei allen Clients nen FTP-Server.
Mit Zitat antworten
  #10 (permalink)  
Alt 09-06-2005, 15:03
ankh
 Member
Links : Onlinestatus : ankh ist offline
Registriert seit: May 2005
Beiträge: 304
ankh ist zur Zeit noch ein unbeschriebenes Blatt
ankh eine Nachricht über ICQ schicken
Standard

Zitat:
Original geschrieben von Quetschi
Mit FTP wirst nix erreichen, da kannst du dich auf den Kopf stellen, außer du installierst bei allen Clients nen FTP-Server.
stümmt... klingt aber komisch, wenn man's so liest...
Mit Zitat antworten
  #11 (permalink)  
Alt 09-06-2005, 15:04
Quetschi
 PHP Expert
Links : Onlinestatus : Quetschi ist offline
Registriert seit: Dec 2004
Beiträge: 3.134
Quetschi wird schon bald berühmt werden
Standard

OffTopic:
klingt komisch, is aber so
Mit Zitat antworten
  #12 (permalink)  
Alt 09-06-2005, 15:17
bernina
 Newbie
Links : Onlinestatus : bernina ist offline
Registriert seit: Jun 2005
Beiträge: 24
bernina ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zitat:
Mit FTP wirst nix erreichen, da kannst du dich auf den Kopf stellen, außer du installierst bei allen Clients nen FTP-Server
Tja, das hatte ich dann mit zwei weinenden Augen auch erkannt...


Zitat:
\\name_des_clients\freigabename_der_platte\verzeichnis
Hier freigabename_der_platte ist dann wieder die Stelle, die ich eigentlich vermeiden wollte. Das ganze sollte möglichst einfach für den Anwender (also kein IT Support, der vorher bestimmte Laufwerke freigibt, Programme installiert o.ä.) abgehen: Einfach Browser starten und ohne weitere Eingriffe von außen arbeiten können...
Mit Zitat antworten
  #13 (permalink)  
Alt 09-06-2005, 15:23
Quetschi
 PHP Expert
Links : Onlinestatus : Quetschi ist offline
Registriert seit: Dec 2004
Beiträge: 3.134
Quetschi wird schon bald berühmt werden
Standard

Ganz hab ich zwar noch ned verstanden was überhaupt erreicht werden soll, aber:

Ohne ein freigegebenes Laufwerk auf dem Client-rechner wirds glaub ich ned gehen, korrigiert mich bitte falls es anders auch ginge.

Zitat:
Einfach Browser starten und ohne weitere Eingriffe von außen arbeiten können...
der User soll vom Client-PC aus den Browser aufrufen, dann auf nen Link klicken oder ein Form ausfüllen und daraufhin soll dass Script irgendwas das aus ner DB kommt bei ihm auf die Platte schreiben, kommt das ungefähr hin?
Mit Zitat antworten
  #14 (permalink)  
Alt 09-06-2005, 15:35
bernina
 Newbie
Links : Onlinestatus : bernina ist offline
Registriert seit: Jun 2005
Beiträge: 24
bernina ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zitat:
der User soll vom Client-PC aus den Browser aufrufen, dann auf nen Link klicken oder ein Form ausfüllen und daraufhin soll dass Script irgendwas das aus ner DB kommt bei ihm auf die Platte schreiben, kommt das ungefähr hin?
Der User kann (soll können) per checkbox diverse Dateien anklicken, um sie auf seiner lokalen Platte abzuspeichern ohne für jede Datei noch mal gefragt zu werden, ob er wirklich möchte...
Die Inhalte der Dateien befinden sich zum Zeitpunkt der Selektion noch in einer DB2 (deshalb auch kein direkter Zugriff auf die Daten einfach übers Netzwerk).
Nach dem submit durch den User werden die Dateien auf dem Server generiert und zum User übertragen. So die Idee...
Mit Zitat antworten
  #15 (permalink)  
Alt 09-06-2005, 15:37
Quetschi
 PHP Expert
Links : Onlinestatus : Quetschi ist offline
Registriert seit: Dec 2004
Beiträge: 3.134
Quetschi wird schon bald berühmt werden
Standard

Und diese User haben allesamt keine freigegebenen Laufwerke?
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an


PHP News

Projektmanagement-Grundlagen Was ist ein PMO?
Projektmanagement-Grundlagen Was ist ein PMO?In unserer Infografik erfahrt ihr es.

02.11.2020 | Berni

PHP Marktplatz-Software
PHP Marktplatz-SoftwareEs hat sich viel getan! Die neue Version 7.5.9 unserer PHP Marktplatz-Software ebiz-trader steht ab sofort zur Verfügung.

28.10.2019 | Berni


 

Aktuelle PHP Scripte

ebiz-trader 6.0 - Das professionelle PHP Marktplatz Script ansehen ebiz-trader 6.0 - Das professionelle PHP Marktplatz Script

Mit unserer Lösungen können Sie nahezu jeden B2B / B2C Marktplatz betreiben den Sie sich vorstellen können. Ganz egal ob Sie einen Automarktplatz, Immobilenportal oder einfach einen Anzeigenmarkt betreiben möchten. Mit ebiz-trader können Sie Ihre Anforder

21.10.2020 Berni | Kategorie: PHP/ Anzeigenmarkt
Sendeplan Script inkl. Wunsch- und Grußbox + Kick-System + Bewerbungssystem

Das professionelle Sendeplan PHP Script inkl. Wunsch- und Grußbox + Kick-System für dein Webradio. Der übersichtliche Sendeplan bietet deinen Moderatoren und Zuhörern die perfekte Übersicht der aktuellen Shows! Du kannst nicht nur Sendungen eintragen, s

20.10.2020 drcomputer | Kategorie: PHP/ Web Radio
Newsmanager 2

Der Newsmanager 2 ist sehr Vielfältig und kann News schreiben, Newsletter versenden und RSS Feeds in einem erzeugen.

20.10.2020 Stephan_1972 | Kategorie: PHP/ News
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 00:16 Uhr.