eine neu programmierte Funktion für die Homepage scannt das lokale
Verzeichnis c:\test_picture auf der Festplatte nach *.JPG und zeigt diese
auf einem (HTML-) Formular an (Codeauszug siehe unten). Ziel ist die
gefundenen lokalen Dateien per FTP auf Knopfdruck ins Web-Laufwerk zu laden,
um sie für eine Galerie bereitzustellen. Auf der lokalen PHP-Testumgebung
eines Home-PCs funktioniert der lokale Scan-Vorgang und der Transfer ins
Web. Nach Integration auf der richtigen Homepage funktioniert der
Scanvorgang nicht. Die Homepage findet kein Verzeichnis c:\test_picture.
Meine Frage: ist das Scannen eines lokalen Laufwerks aus dem Web
grundsätzlich nicht möglich, bzw. sind besondere Freigaben (Firewall usw. )
notwendig? Ist diese Vorgehensweise unüblich? Gibt es eine alternative
Lösung?
$img_local_folder="c:\test_picture";
if (is_dir($img_local_folder))
{
$db = opendir($img_local_folder) or die("folder must exist for picture
upload");
while($item = readdir($db))
{
// Bildernamen listen
// ...
}
}
> Auf der lokalen PHP-Testumgebung
> eines Home-PCs funktioniert der lokale Scan-Vorgang und der Transfer ins
> Web. Nach Integration auf der richtigen Homepage funktioniert der
> Scanvorgang nicht. Die Homepage findet kein Verzeichnis c:\test_picture.
>
> Meine Frage: ist das Scannen eines lokalen Laufwerks aus dem Web
> grundsätzlich nicht möglich,...
Natürlich nicht. Denke einmal nach: stell dir vor, jede x-beliebige
Website könnte deine lokalen Daten auslesen...
> Meine Frage: ist das Scannen eines lokalen Laufwerks aus dem Web=20
> grundsätzlich nicht möglich, bzw. sind besondere Freigaben (Firewal=
l usw. )=20
> notwendig? Ist diese Vorgehensweise unüblich?
Natürlich geht das nicht.
> Gibt es eine alternative=20
> Lösung?
In HTML:
> $img_local_folder=3D"c:\test_picture";
^^
Selbst wenn der Zugriff möglich wäre, ginge es hier schief.
http://www.php.net/manual/en/language.types.string.php
MfG
Niels
--=20
| http://www.kolleg.de =B7 Das Portal der Kollegs in Deutschland |
| http://www.bsds.de =B7 BSDS Braczek Software- und DatenSysteme |
| Webdesign =B7 Webhosting =B7 e-Commerce =B7 Joomla! Content Management =
|
------------------------------------------------------------ ------
> Natürlich nicht. Denke einmal nach: stell dir vor, jede x-beliebige
> Website könnte deine lokalen Daten auslesen...
>
Das akzeptiere ich. Doch es wundert mich schon, dass es folgenden tag gibt:
.
Damit kann man doch von der Webseite aus lokal browsen. Nur eben würde ich
diese Funktion etwas komfortabler gestalten wollen.
> Meine Frage: ist das Scannen eines lokalen Laufwerks aus dem Web
> grundsätzlich nicht möglich, bzw. sind besondere Freigaben (Firewall
> usw. )
> notwendig? Ist diese Vorgehensweise unüblich?
Natürlich geht das nicht.
> Gibt es eine alternative
> Lösung?
In HTML:
> $img_local_folder="c:\test_picture";
^^
Selbst wenn der Zugriff möglich wäre, ginge es hier schief.
"Aber" genau wie bei
User sein eigenes Directory. Ziel ist doch nur die Files eines bestimmten
Dir namentlich zu sehen (gegebenenfalls nach Drücken einer Schaltfälche
"Durchsuchen" wie bei obigen HTML-tag). Mit einer erweiterten Version des
tags könnte man komfortabeler mehrere Bilder gleichzeitig verarbeiten ....
>> Natürlich nicht. Denke einmal nach: stell dir vor, jede x-beliebige
>> Website könnte deine lokalen Daten auslesen...
>
> Das akzeptiere ich. Doch es wundert mich schon, dass es folgenden tag gibt:
> .
Was wundert Dich daran?
> Damit kann man doch von der Webseite aus lokal browsen.
Du sagst es: lokal. Was Du aber möchtest, ist, vom Server aus auf Deinem
Rechner zu browsen. Und genau das geht aus bereits genanntem gutem Grund
nicht.
> Nur eben würde ich
> diese Funktion etwas komfortabler gestalten wollen.
Aber nicht mit PHP. PHP läuft auf dem Server, nicht auf dem Client.
Gruß. Claus
--
,~°O O
O ,´ / |/|\
/ |¯`. Das neue Hochzeits-Branchenbuch im Internet ,´ / | |\
/__| `~...............................................~´ /___|/ /
Claus Reibenstein schrieb:
>
>
> Aber nicht mit PHP. PHP läuft auf dem Server, nicht auf dem Client.
>
Ok, doch welche Schritte/Module muss man nun programmieren, damit die
Besucher einer Homepage ihre Fotos auf den entsprechenden Webserver (über
eine Funktionalität der Homepage) laden können.
Vielen Dank in voraus, Udo Pecher
> Claus Reibenstein schrieb:
>
>> Aber nicht mit PHP. PHP läuft auf dem Server, nicht auf dem Client.
>
> Ok, doch welche Schritte/Module muss man nun programmieren, damit die
> Besucher einer Homepage ihre Fotos auf den entsprechenden Webserver (über
> eine Funktionalität der Homepage) laden können.
Udo Pecher schrieb:
> Ok, doch welche Schritte/Module muss man nun programmieren, damit die
> Besucher einer Homepage ihre Fotos auf den entsprechenden Webserver (über
> eine Funktionalität der Homepage) laden können.
"Claus Reibenstein" schrieb:
>>
>>> Aber nicht mit PHP. PHP läuft auf dem Server, nicht auf dem Client.
>>
>> Ok, doch welche Schritte/Module muss man nun programmieren, damit die
>> Besucher einer Homepage ihre Fotos auf den entsprechenden Webserver (über
>> eine Funktionalität der Homepage) laden können.
>
> Ist das jetzt eine Frage? :-)
Ja.
Udo Pecher wrote:
> Ich bin davon ausgegangen, dass wenn nun ein Besucher einer Homepage in
> einem Formular mit dem den Namen eines Fotos z.B.
> c:\test.jpg auswählt, dieser Name an eine Funktion ftp_put ... übergeben
> wird, die dieses dann zum Webserver überträgt. Ich bin mir nur nicht sicher
> ob man nun mit ftp_put auf das lokale File irgendeines Besuchers zugreifen
> und auf das entsprechende Weblaufwerk übertragen kann. In meiner
> PC-Testumgebung localhost ... kann ich ein Bild ins Webverzeichnis via FTP
> laden, von meiner Webseite aus funktioniert der Zugriff derzeit noch nicht.
> Sollte das so funktionieren??
Nein, kein FTP. Es wird ein HTTP POST abgesetzt und darin das File
angehängt. Wie das geht, liest du am besten hier:
> "Aber" genau wie bei
> User sein eigenes Directory. Ziel ist doch nur die Files eines bestimmten
> Dir namentlich zu sehen (gegebenenfalls nach Drücken einer Schaltfälche
> "Durchsuchen" wie bei obigen HTML-tag). Mit einer erweiterten Version des
> tags könnte man komfortabeler mehrere Bilder gleichzeitig verarbeiten ....
Sowas geht mit PHP nicht, da PHP serverseitig läuft. Was du bräuchtest
ist zB ein JavaApplet, daß dann ein Array der Dateien im entsprechenden
ausgewählten lokalen Ordner auf dem Client anlegt, dieses serialisiert
und per HTTP-Request an den Server schickt.
Beispiel dafür habe ich gerade keins parat, mir fällt nur die
Dateiverwaltung von Webmin ein, die haben genau so etwas integriert.
B.
--
BM Computer-Services, Bergmannstr. 66, 10961 Berlin
Webdesign, Internet, Layout und Grafik
Tel.: 030/20649400, mobil 0175/7419517, Fax: 030/20649401
Web: http://www.bmservices.de, eMail: kontakt@bmservices.de
On Sun, 21 Jan 2007 22:27:51 +0100, Udo Pecher wrote:
> Ich bin davon ausgegangen, dass wenn nun ein Besucher einer Homepage in
> einem Formular mit dem den Namen eines Fotos z.B.
> c:\test.jpg auswählt, dieser Name an eine Funktion ftp_put ... übergeben
> wird, die dieses dann zum Webserver überträgt. Ich bin mir nur nicht sicher
> ob man nun mit ftp_put auf das lokale File irgendeines Besuchers zugreifen
> und auf das entsprechende Weblaufwerk übertragen kann.
Nein. Schau dir den dritten Parameter der Funktion an. Der heißt nicht
umsonst "local_file". "local" bezieht sich auf den Rechner auf dem das
Programm läuft und das ist nun eben nicht der Rechner desjenigen, der die
Webseite abruft.
Mach einen normalen Dateiupload und schieb die Datei dann mit ftp_put
weiter, wenn nicht ohnehin ein move_uploaded_file() reicht. Ein Lesetipp
dazu ist folgender Artikel der FAQ:
11.11. Wie funktioniert ein Datei-Upload über HTML-Formulare?
http://www.php-faq.de/q/q-formular-upload-php4.html
> In meiner
> PC-Testumgebung localhost ... kann ich ein Bild ins Webverzeichnis via FTP
> laden, von meiner Webseite aus funktioniert der Zugriff derzeit noch nicht.
> Sollte das so funktionieren??
Natürlich funktioniert das in deiner lokalen Testumgebung. Dort läuft das
PHP-Programm ja auch auf dem gleichen Rechner auf dem die Bilder liegen.
nun habe ich mein HTML-Form und das zugehörige php-File wie im Link
angegeben umprogrammiert. Allerdings kommen jetzt die unten stehenden
Fehlermeldungen. Liegt ein Fehler vor oder handelt es sich tatsächlich um
ein Zugriffsproblem.
Mit der Bitte um Feedback,
Udo Pecher
Fehlermeldungen:
Target: /home/www/web123/html/udo.jpg
Warning: move_uploaded_file(/home/www/web123/html/udo.jpg)
[function.move-uploaded-file]: failed to open stream: Permission denied in
/home/www/web123/html/new.php on line 90
Warning: move_uploaded_file() [function.move-uploaded-file]: Unable to move
'/home/www/web123/phptmp/phpwi0E40' to '/home/www/web123/html/udo.jpg' in
/home/www/web123/html/new.php on line 90
There was an error uploading the file, please try again!
mit line 90: if
(move_uploaded_file($_FILES["pictures"]["tmp_name"][$key], $target_path))
.....
und
$currentdir=getcwd();
$target_path = $currentdir . "/" . basename($name[$j]);
> Hallo Johannes,
>
> nun habe ich mein HTML-Form und das zugehörige php-File wie im Link
> angegeben umprogrammiert. Allerdings kommen jetzt die unten stehenden
> Fehlermeldungen. Liegt ein Fehler vor oder handelt es sich tatsächlich um
> ein Zugriffsproblem.
> Fehlermeldungen:
>
> Target: /home/www/web123/html/udo.jpg
>
> Warning: move_uploaded_file(/home/www/web123/html/udo.jpg)
> [function.move-uploaded-file]: failed to open stream: Permission denied in
> /home/www/web123/html/new.php on line 90
>
> Warning: move_uploaded_file() [function.move-uploaded-file]: Unable to move
> '/home/www/web123/phptmp/phpwi0E40' to '/home/www/web123/html/udo.jpg' in
> /home/www/web123/html/new.php on line 90
> There was an error uploading the file, please try again!
Da steht eh alles drin - bitte lesen:
"...Unable to move '/home/www/web123/phptmp/phpwi0E40' to
'/home/www/web123/html/udo.jpg'..."
Auf "/home/www/web123/html/" hat PHP offensichtlich keine Schreibrechte.
Gruß, Gregor
--
http://www.gregorkofler.at ::: Landschafts- und Reisefotografie
http://www.licht-blick.at ::: Forum für Multivisionsvorträge
http://www.image2d.com ::: Bildagentur für den alpinen Raum
Gregor Kofler wrote:
> Udo Pecher meinte:
>> Warning: move_uploaded_file() [function.move-uploaded-file]: Unable to
>> move '/home/www/web123/phptmp/phpwi0E40' to
>> '/home/www/web123/html/udo.jpg' in /home/www/web123/html/new.php on
>> line 90
>> There was an error uploading the file, please try again!
> Da steht eh alles drin - bitte lesen:
> "...Unable to move '/home/www/web123/phptmp/phpwi0E40' to
> '/home/www/web123/html/udo.jpg'..."
> Auf "/home/www/web123/html/" hat PHP offensichtlich keine Schreibrechte.
Oder udo.jpg existiert da schon und du (der Webserver) hat keinen
Zugriff drauf. Ein chmod 777 für dieses Directory und ein chmod 666 für
die Files da drin hilft.
> Ein chmod 777 für dieses Directory und ein chmod 666 für
> die Files da drin hilft.
Also ob das der richtige Ansatz ist ...
Gruß. Claus
--
,~°O O
O ,´ / |/|\
/ |¯`. Das neue Hochzeits-Branchenbuch im Internet ,´ / | |\
/__| `~...............................................~´ /___|/ /
Johannes Vogel meinte:
> Hi Udo, Gregor
>
> Gregor Kofler wrote:
....
> Oder udo.jpg existiert da schon und du (der Webserver) hat keinen
> Zugriff drauf.
Oder das. Aber dazu müsste Udo ja nur in sein Verzeichnis schauen...
Gregor
--
http://www.gregorkofler.at ::: Landschafts- und Reisefotografie
http://www.licht-blick.at ::: Forum für Multivisionsvorträge
http://www.image2d.com ::: Bildagentur für den alpinen Raum
Gregor Kofler wrote:
>
> ...
>
>> Oder udo.jpg existiert da schon und du (der Webserver) hat keinen Zugriff
>> drauf.
>
> Oder das. Aber dazu müsste Udo ja nur in sein Verzeichnis schauen...
>
Hallo,
also die Datei Udo.jpg war noch nicht drauf. Nun hoffe ich doch für
bahncompany.de den upload (im natürlich psswd- geschützten Bereich) zu
haben. Ich habe jetzt ein anderes Verzeichnis gewählt, für das mir der
Provider offenbar einmal Schreibrechte freigegeben hat. Über das
online-Administrations-Tool sah ich keine Möglichkeit die Rechte des bisher
verwendeten Verzeichnisses selbst einzustellen. Eure Tips oben werde ich
noch testen, bzw.: Wie stellt man ein Verzeichnis ein um es mit
move_uploaded_file... zu beschreiben?
Der Upload klappt prinzipiell mit dem unten anliegenden Code ($uploadir war
entscheidend). Ich mache gerade noch einige Tests: Offenbar reagiert auch
die Filegrößen-Beschränkung auf 300000. Bei einem 8 MB-Bild läuft die
Routine unten ohne Aktion durch...
Dann besteht eigentlich nach wie vor der Bedarf für eine Dynamisierung, d.h.
ich gebe aktuell mit einer config-Datei vor, wieviele Bilder in einem
Formular überhaupt eingetragen werden können. Ist das schön?
Vorab: Ein guter Viewer für die Bilder wird dann wohl automatisch weitere
Fragen hervorrufen.
Am Sun, 21 Jan 2007 18:07:19 +0100 schrieb Udo Pecher:
Hallo Udo,
du suchst etwas wie http://xupload.aspupload.com/ (kostenpflichtig)
oder jupload.biz (für private IIRC free).
Allerdings muss dein Client dies dann unterstützen. Ob z.B. Firefox das
xupload ActiveX Control wirklich einbinden kann!? Keine Ahnung.