![]() |
Re: [PHP] PHP Funktion aus Formular aufrufen
Also, ich habe es jetzt so:
Code:
Als Fehlermeldung kommt:
<?php
if ($_POST['sent'] == '1') { $file = fopen($_FILES['uploadfile']['tmp_name'], 'r'); upload_file($newpath, $file, FTP_BINARY); $_POST['sent'] = '0'; } ?> <form ENCTYPE="multipart/form-data" ACTION="<?=$_SERVER['PHP_SELF'].'?newpath='.$newpath ?>" METHOD=POST> <input type="hidden" name="sent" value="1"> <input NAME="uploadfile" SIZE=75 TYPE="file"> <input TYPE="submit" VALUE="Send File"> </form> Zitat:
Code:
ist ja auch logisch, fopen gibt ja ein Dateihandle zurück, da müsste aber der Pfad und der Name der lokalen Datei stehen. Wie bekomm eich den aus dem Formular raus?
$result = ftp_put($conn, $dest, $source, $mode);
Hardgecodet:
Code:
kommt die Meldung:
upload_file($newpath.'\style.css', 'H:\Downloads\style.css', FTP_BINARY);
Zitat:
|
Re: [PHP] PHP Funktion aus Formular aufrufen
:oops:
Sorry. Hab gerade ftp_fput() mit ftp_put() verwechselt. DU hast natürlcih recht, dass 1. die Argumente richtig waren und 2. kein Dateizeiger sondern ein String mit dem Pfad erwartet wird. |
Re: [PHP] PHP Funktion aus Formular aufrufen
Roter Kasten.
Woran kann es jetzt liegen, dass er auf die Datei keinen Zugriff hat? Und wie komme ich an den Text aus dem Edit des Formulares? Puh, das wird eine schwere Geburt. Aber dann ist für heute auch schluss. Versprochen. ;) |
Re: [PHP] PHP Funktion aus Formular aufrufen
Zitat:
Probiere mal so: upload_file($_FILES['uploadfile']['tmp_name'], '/style.css', FTP_BINARY); Dann müsste die Datei direkt aus dem Temp-Verzeichnis auf den FTP geladen werden, und zwar mit dem Namen style.css. (Wieso gerade style.css, dann wird ja immer die Datei überschrieben). |
Re: [PHP] PHP Funktion aus Formular aufrufen
Logisch, ich will ja eine Datei von meinem lokalen Rechner auf meinen Webspace laden. Und den Dateinamen habe ich nur erstmal hardgecodet, um zu probieren, ob es überhaupt funktioniert. Das soll natürlich nicht so bleiben.
Zitat:
Aber egal wie, später irgendwann muss ich ja auf den Text aus dem Eingabefeld zugreifen, wie komme ich da dran? |
Re: [PHP] PHP Funktion aus Formular aufrufen
Zitat:
|
Re: [PHP] PHP Funktion aus Formular aufrufen
Zitat:
PHP wird auf dem Server ausgeführt - der weiß nichts von deinen lokalen Verzeichnissen. Wenn du die Datei in einer form als Upload-Feld definiert hast, dann ist deren Inhalt zusammen mit der Anfrage schon auf den Rechner übertragen worden und steht jetzt eben in der angesprochenen temporären Datei. Du machst jetzt also einen FTP-Upload vom Server auf den Server (derselbe Rechner), um die Save-Mode-Restriktionen zu umgehen. |
Re: [PHP] PHP Funktion aus Formular aufrufen
Liste der Anhänge anzeigen (Anzahl: 1)
Jetzt verstehe ich gar nichts mehr. :? Wie kann eine 5 MB Datei, die ich mit "Durchsuchen" ausgewählt habe, nach Schließen des Dialoges schon auf dem Server sein? Das PHP auf dem Server ausgeführt wird ist mir klar, aber wenn da steht, dass man mit dftp_put eine Datei hochladen kann, dann verstehe ich darunter vom lokalen Rechner auf den Server. Die anderen FP-Scripte haben auch mit FTP-put gearbeitet:
Code:
switch ($action) {
case 'upload': $r = $ftp->put( $dir.$_upload['uploadfile']['name'], $_upload['uploadfile']['tmp_name']); if ($r) { echo 'Fileupload erfolgreich'; } else { echo 'Fileupload leider fehlgeschlagen'; }
Code:
das mal der Code aus einem Script, aber ich habe das nicht zusammengebracht, deswegen habe ich hier gefragt. Das ganze Script mal im Anhang.
function put ( $file, $sourcefile ) {
return ftp_put( $this->conn, $file, $sourcefile, FTP_BINARY); } Gerade habe ich das hier gefunden: HTML-Datei:
Code:
PHP-Datei:
<html>
<head> <title>Datei Upload</title> </head> <body bgcolor="#FFFFFF" text="#000000"> <h1>Schicken Sie uns ihre Texte</h1> <form action="ftpbeispiel.php" enctype="multipart/form-data" method="POST"> Wählen Sie eine Textdatei (txt, html usw.) von Ihrem Rechner aus: <input name="lokale_datei" type="file" size="50" maxlength="1024" accept="text/*"> </p> Verzeichnis/Zieldatei <input type="text" name="zieldatei"> </p> <input type="submit" name="Abschicken" value="Abschicken"> </p> </form> </body> </html>
Code:
Das funktioniert wunderbar, aber was anderes mache ich doch auch nicht. :wall:
<?php
// Diese Variablen bitte aendern $ftp_server = "luckie-online.de"; $benutzername = "foo"; $passwort = "bar"; // Die Verbindung herstellen $connection_id = ftp_connect("$ftp_server"); // Mit Benutzername und Kennwort anmelden $login_result = ftp_login($connection_id, "$benutzername", "$passwort"); // überprüfen ob alles gutgegangen ist if ((!$connection_id) || (!$login_result)) { echo "<H1>Ftp-Verbindung nicht hergestellt!<H1>"; echo " Verbindung mit ftp_server als Benutzer $benutzername nicht möglich!</p>"; die; } else { echo " Verbunden mit ftp_server als Benutzer $benutzername </p>"; } // Hochladen der datei $upload = ftp_put($connection_id, $zieldatei, $lokale_datei, FTP_ASCII); // Upload-Status überprüfen if (!$upload) { echo " Ftp upload war fehlerhaft!</p>"; } else { echo " Datei $slokale_datei auf $host als $zieldatei geschrieben </p>"; } // Schließen der Verbindung ftp_quit($connection_id); ?> |
Re: [PHP] PHP Funktion aus Formular aufrufen
So, ich habe es jetzt geschaft. :)
Code:
Nur einen Haken hat es. echo $uploadfile ergibt:
<?php
if ($_POST['sent'] == '1') { echo '<pre>'; $destfile = 'test.xyz'; echo $uploadfile; upload_file('/'.$newpath.'/'.$destfile, $uploadfile, FTP_BINARY); echo '</pre>'; } ?> <form ENCTYPE="multipart/form-data" ACTION="<?=$_SERVER['PHP_SELF'].'?newpath='.$newpath ?>" METHOD=POST> <input type="hidden" name="sent" value="1"> <input NAME="uploadfile" SIZE=75 TYPE="file"> <input TYPE="submit" VALUE="Send File"> </form> Zitat:
Habs:
Code:
Nur noch eins, wenn ich die Seite aktualisiere mit F5, dann will er wieder was hochladen, kann ich das $_POST['sent'] == '1' irgendwie wieder zurücksetzen?
<?php
if ($_POST['sent'] == '1') { echo '<pre>'; upload_file('/'.$newpath.'/'.$_FILES['uploadfile']['name'], $uploadfile, FTP_BINARY); echo '</pre>'; } ?> <form ENCTYPE="multipart/form-data" ACTION="<?=$_SERVER['PHP_SELF'].'?newpath='.$newpath ?>" METHOD=POST> <input type="hidden" name="sent" value="1"> <input NAME="uploadfile" SIZE=75 TYPE="file"> <input TYPE="submit" VALUE="Send File"> </form> Und wenn ich ein zweites Formular habe, kann ich dann dies machen:
Code:
Nur noch diese Kleinigkeit und ich bin super glücklich. :angel:
<?php
if ($_POST['sent'] == '1') { echo '<pre>'; upload_file('/'.$newpath.'/'.$_FILES['uploadfile']['name'], $uploadfile, FTP_BINARY); echo '</pre>'; } else if ($_POST['sent'] == '2') { deletefile(...); } ?> |
Re: [PHP] PHP Funktion aus Formular aufrufen
Zitat:
Zitat:
Jetzt überleg' noch mal 1. wie soll der Webserver denn auf eine Datei auf deiner Platte kommen 2. wie soll ein FTP-Kommando, dass auf dem Server abgesetzt wird, eine Datei von deiner Platte übertragen? |
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:19 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz