PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Ordner hochladen


JayDee
28.03.2003, 14:55:58
Hallo Leute,

ich möchte gerne den Inhalt eines Ordners hochladen. Möglichst nicht durch Angabe aller Dateinamen, sondern nur durch den Namen des Ordners.

Vielen Dank für eure Hilfe.

Gruß
JayDee

|Coding
28.03.2003, 15:09:23
hi,

du wirst aber sicher nicht um einen upload der einzelnen dateien rum kommen...

Progman
28.03.2003, 16:16:34
oder dem User sagen er soll das Verzeichnis mit WinZip oder so zippen und dann diese datei uploaden.

Warum will man denn verzeichnisse uploaden?

JayDee
31.03.2003, 08:22:25
das Script soll zur Pflege der Seite dienen und nicht dem User zur Verfügung stehen.

Gruß
JayDee

bweichel
24.06.2003, 14:16:46
Hallo JayDee,

ich habe das gleiche Problem. Möchte ein komplettes Bilderverzeichnis hochladen, habe jedoch noch keine Möglichkeit gefunden.

Hast du bereis eine Lösung?

Danke, Björn

JayDee
24.06.2003, 14:47:25
leider habe ich auch noch keine Möglichkeit,

aber ich habe den Ordner gezippt, die Zip-Datei hochgeladen und oben entpackt.

Setzt aber einen ausgeschaltetet SafeMode voraus und die Dateien können nur noch per php, also über den Browser gelöscht werden. Nicht per FTP, weil Du nicht eigetümer bist :)))


Gruß

bweichel
24.06.2003, 14:54:03
Hi JayDee,

also ich habe mein Problem nun wie folgt gelöst:

$verz = opendir("$up_bild_quelle");
while($file = readdir ($verz)) {
if($file != "." && $file != ".."){
$upload = ftp_put($conn_id, "$up_bild_ziel$file", "$up_bild_quelle"."\"."$file", FTP_BINARY);
if (!$upload) {
echo "Ftp upload war fehlerhaft! nr";
} else {
echo "Datei $file auf $ftp_server als $file geschrieben nr";
}
}
}
closedir($verz);

Ich lese das gesamte Bilder Verzeichnis aus und lade dann wiederrum in der While Schleife jedes einzelne Bild hoch.

Geht eigendlich sehr gut. Ist aber nicht die beste Lösung.

Wie hast du die Daten denn gezippt???? Mit PHP oder von Hand?

Gweilo
24.06.2003, 14:57:18
eine möglichkeit wäre ein script lokal auszuführen, und da per ftp die datein hochzuladen. Habe es getestet, und es funktionniert einwantfrei. Der ordner und ftp-connection-daten müssen noch angepasst werden.


<?php
$ftp_server="www.bla.com";
$ftp_user_name="deruser";
$ftp_user_pass="deinpasswort";

// Herstellen der Basis-Verbindung
$conn_id = ftp_connect("$ftp_server");

// Einloggen mit Benutzername und Kennwort
$login_result = ftp_login($conn_id, "$ftp_user_name", "$ftp_user_pass");

// Verbindung überprüfen
if ((!$conn_id) || (!$login_result)) {
echo "Ftp-Verbindung nicht hergestellt! ";
echo "Verbindung mit $ftp_server als Benutzer $user nicht möglich";
die;
} else {
echo "Verbunden mit $ftp_server als Benutzer $ftp_user_name";
}

$dir="./test";
$verz=opendir($dir);
while ($file = readdir ($verz)) {
if (is_file($dir."/".$file))
{
$upload = ftp_put($conn_id, "public_html/temp/".$file, $dir."/".$file, FTP_BINARY);
if (!$upload)
echo "Fehler beim Upload von ".$file."<br />";
else
echo $file." wurde erfolgreich hochgeladen<br />";
}
}
closedir($verz);

// Schließen des FTP-Streams
ftp_quit($conn_id);
?>

Gweilo
24.06.2003, 14:58:43
warst du 3 minuten schneller =)

bweichel
24.06.2003, 15:07:24
Ja anscheinend war ich etwas schneller. Aber macht ja nichts.

Ich habe bei mir noch das Problem, dass er die Verbindung seit ich die Bilder mit hochladen will zwischen drin abbricht. Wahrscheinlich hängt das damit zusammen, dass die Rate für den Upload in der php.ini zu niedrig eingestellt ist.

Hast du ne Ahnung wie sich diese Rate nennt? Kann nämlich in meiner php.ini nichts finden, wass nur annähernd mit einer solchen Begrenzung zu tun haben könnte.

Danke!

Gweilo
24.06.2003, 16:18:12
klar. sie heisst upload_max_filesize

bweichel
24.06.2003, 16:30:08
Ok, ich habe Sie in Zwischenzeit gefunden. Aber daran liegt es nicht. Ich habe upload_max_filesize = 10M eingestellt und es geht noch immer nicht.

Mitlerweile ist mir dann aufgefallen, dass er nach 30 Sekunden abbricht. max_execution_time = 60 ist eingestellt. Kann es also auch nicht sein, dann bin ich die komplette PHP.ini durchgegangen und habe nach 30 gesucht. Also Ergebnis bekam ich pfpro.defaulttimeout = 30. Keine Ahnung was das sein sollte aber ich habe es mal auf 60 hochgeschraubt. Ging auch nicht!!!

Hast du eine Idee, was man machen könnte??? Ich weiß nicht mehr weiter! Ich habe auch schon set_time_limit(30); gemacht, damit ich 60 Sekunden bekommen, aber es kann sein das PHP im Safermode läuft und dann bringt mir set_time_limit() auch nichts.

Hilfe, Hilfe, Hilfe...

Gweilo
24.06.2003, 20:17:44
hatte auch mal ein ähnliches problem - aber leider keine lösung gefunden. Das problem war beim normalen upload (nicht per ftp), dass er bei einer grossen datei (>10MB oder so) plötzlich alle parameter (URL/POST) verlor und die Datei nicht hochgeladen hatte. Die php datei, auf dem das uploadFormular zeigte wurde dann ohne parameter ausgeführt.

Ist zwar überhaupt nicht das selbe, aber vielleicht hat es mit der selben ursache zu tun.

bweichel
25.06.2003, 13:30:38
Juhuuuuu....

hab es nun endlich hinbekommen. Es lag dann doch an set_time_limit();

Eigentlich dachte ich wenn es Standartmäßig auf 30 Sekunden steht, dann könnte ich mit set_time_limit(30); nochmals 30 Sekunden drauf geben, also 60 Sekunden haben.

Ist aber allerdings nicht so gewesen. Hab es dann aus Spaß mal auf 3000 gesetzt und siehe da es ging.

Also läuft mein PHP doch nicht im Safe_mode.

Klasssssseeeee

Gruß Björn