Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   [PHP] Datei uploaden (https://www.delphipraxis.net/37371-%5Bphp%5D-datei-uploaden.html)

Die Muhkuh 5. Jan 2005 08:01


[PHP] Datei uploaden
 
Moin moin,

mit folgender Function möchte ich eine Datei uploaden:
Code:
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);
   }
So rufe ich die Function auf:

Code:
<?
  $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']);
   }
?>
Und das führt zu diesem Fehler:

Zitat:

Warning: ftp_put(text.txt) [function.ftp-put]: failed to open stream: No such file or directory in C:\xampp\htdocs\FreeDev\admin\ftp\ftpfunc.inc.php on line 72
Ich wüsste nicht, wo da ein Fehler sein soll.

bttb930 5. Jan 2005 09:33

Re: [PHP] Datei uploaden
 
und welche zeile ist line 72?

Airblader 5. Jan 2005 09:36

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:
if(!file_exists($file))
{
 $handle = @fopen($file,"w");
 @fclose($handle);
 @chmod($file,0777);
}
Die @ sollte man normal nicht machen, hier sind sie aber sinnvoll, falls fehlermeldungen kommen, da das hier nichts entscheidendes ist.
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

Die Muhkuh 5. Jan 2005 10:20

Re: [PHP] Datei uploaden
 
Moin Airblader,

dafür kommt jetzt bei:

Code:
$up = ftp_put($ftphandle, $url, $file, FTP_BINARY);
Die Fehlermeldung:

Zitat:

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!

Benedikt 5. Jan 2005 10:38

Re: [PHP] Datei uploaden
 
Entweder ich überseh was oder der Fehler liegt einfach hier:

Code:
upload($kat, $source['name']);
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.
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']);

Airblader 5. Jan 2005 11:18

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

Die Muhkuh 5. Jan 2005 17:15

Re: [PHP] Datei uploaden
 
Zitat:

Zitat von Benedikt
Entweder ich überseh was oder der Fehler liegt einfach hier:

Code:
upload($kat, $source['name']);
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.
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']);

Hi,

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!

Airblader 5. Jan 2005 17:19

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

Die Muhkuh 5. Jan 2005 17:23

Re: [PHP] Datei uploaden
 
Hi,


aus der Doku:
Zitat:

Beschreibung
int ftp_put ( int ftp_stream, string remote_file, string local_file, int mode)


Gibt bei Erfolg TRUE zurück, im Fehlerfall FALSE.

ftp_put() speichert die per local_file bestimmte Datei auf den FTP-Server als Datei namens remote_file. Der Übertragungs-Modus-Parameter mode muss entweder FTP_ASCII oder FTP_BINARY lauten.

Benedikt 5. Jan 2005 17:50

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 19:50 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz