![]() |
[PHP] Datei uploaden
Moin moin,
mit folgender Function möchte ich eine Datei uploaden:
Code:
So rufe ich die Function auf:
function upload($kat, $file)
{ $ftphandle = Connect(); if (!$ftphandle) { echo 'Kann nicht zum FTP-Server verbinden'; } else { $dest = basename($file); $url = 'http://localhost/FreeDev/admin/ftp/upload/' . $kat . '/' . $dest; $up = ftp_put($ftphandle, $url, $file, FTP_BINARY); if ($up) { echo 'Datei wurde erfolgreich übertragen!'; } else { echo 'Fehler beim übertragen der Datei!'; echo ' ' . $url; } } ftp_quit($ftphandle); }
Code:
Und das führt zu diesem Fehler:
<?
$source = $_FILES['datei']; switch ($_POST['kat']) { case 'Grafik': $kat = 'Grafik'; break; case 'Programmierung': $kat = 'Programmierung'; break; case 'Sonstiges': $kat = 'Sonstiges'; break; default: $kat = 'Sonstiges'; break; } if (isset($source)) { upload($kat, $source['name']); } ?> Zitat:
|
Re: [PHP] Datei uploaden
und welche zeile ist line 72?
|
Re: [PHP] Datei uploaden
php is doch schon eher mein gebiet ;)
Also, die Meldung sagt alles. Deine Datei existiert nicht und kann nicht angelegt werden. bau das mal davor ein(die variable $file musst mit deiner variable für den dateinamen oder dem dateinamen selber ändern):
Code:
Die @ sollte man normal nicht machen, hier sind sie aber sinnvoll, falls fehlermeldungen kommen, da das hier nichts entscheidendes ist.
if(!file_exists($file))
{ $handle = @fopen($file,"w"); @fclose($handle); @chmod($file,0777); } und versuch dem ordner wo du bist auch mal chmod zu geben. air edit: achja, mit isset($source) machst du was unnötiges. denn $source ist IMMER gesetzt, wenn auch mit "nichts". dann musst du schon isset($_FILES['xxx']) machen |
Re: [PHP] Datei uploaden
Moin Airblader,
dafür kommt jetzt bei:
Code:
Die Fehlermeldung:
$up = ftp_put($ftphandle, $url, $file, FTP_BINARY);
Zitat:
|
Re: [PHP] Datei uploaden
Entweder ich überseh was oder der Fehler liegt einfach hier:
Code:
Du willst die auf den Server hochgeladene Datei per FTP auf einen anderen Server übertragen -> nun sobald du die Datei aber ersteinmal nur hochgeladen hast, ist diese nur temporär vorhanden und in deinem Falle mit $source['tmp_name'] erreichbar.
upload($kat, $source['name']);
Wenn du sie erst dauerhaft abspeichern willst, muss schon move_uploaded_file oder copy an Werk - was ja aber eigentlich überflüssig ist wenn du die Datei sowieso per FTP woanders hinhaben willst. Also:
Code:
upload($kat, $source['tmp_name']);
|
Re: [PHP] Datei uploaden
Das ist auch wieder wahr ;)
Daran hab ich gar nicht gedacht, weil es hier FTP ist. Trotzdem: isset($source) hat soviel wert wie if($source==$source) air |
Re: [PHP] Datei uploaden
Zitat:
irgendwie komm ich grad nicht mit?!? Ich möchte eine Datei die ich lokal habe auf meinen Server uploaden. Dauerhaft. Wenn ich dsa mit tmp_name schreibe gehts das genauso wenig. Da kommt: Warning: ftp_put() [function.ftp-put]: Filename invalid in C:\xampp\htdocs\FreeDev\admin\ftp\ftpfunc.inc.php on line 79 Fehler beim übertragen der Datei! |
Re: [PHP] Datei uploaden
es ist so:
durch abschicken eines formulars mit einem file-typ wird diese datei temporär hochgeladen, jedoch am scriptende gelöscht. du kannst also nicht die lokale datei uploaden, sondern eine temporär upgeloadete kopie davon. diese musst du dann mit entsprechenden befehlen speichern. Wenn ich das richtig sehe versucht du auch eine File in eine Text-Datei zu laden :gruebel: [edit]ok, das stimmt doch[/edit] haben denn die ordner in du das das stecken willst chmod? evtl. müssen sie das haben ich muss mir nu aber erstmal die ftpput funktion anschauen air |
Re: [PHP] Datei uploaden
Hi,
aus der Doku: Zitat:
|
Re: [PHP] Datei uploaden
Also willst du die Datei einfach im Browser hochladen und dann auf dem Server speichern auf dem auch dein Script läuft? Wozu brauchst du dann noch FTP?
So ganz ist mir nicht klar was du eigentlich machen willst :wink: Wenn du die Datei einfach auf dem Server speichern willst dann musst du die temporär hochgeladene mit move_uploaded_file oder copy verschieben, ansonsten lädst du sie mit ftp_put auf einen anderen Server falls du das willst... |
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:06 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