AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

[PHP] Datei uploaden

Ein Thema von Die Muhkuh · begonnen am 5. Jan 2005 · letzter Beitrag vom 6. Jan 2005
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von Die Muhkuh
Die Muhkuh

Registriert seit: 21. Aug 2003
7.332 Beiträge
 
Delphi 2009 Professional
 
#1

[PHP] Datei uploaden

  Alt 5. Jan 2005, 09:01
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.
  Mit Zitat antworten Zitat
bttb930

Registriert seit: 6. Okt 2003
372 Beiträge
 
#2

Re: [PHP] Datei uploaden

  Alt 5. Jan 2005, 10:33
und welche zeile ist line 72?
  Mit Zitat antworten Zitat
Benutzerbild von Airblader
Airblader

Registriert seit: 29. Okt 2004
Ort: Geislingen an der Steige
742 Beiträge
 
#3

Re: [PHP] Datei uploaden

  Alt 5. Jan 2005, 10:36
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
Ingo Bürk
Es nimmt der Augenblick, was Jahre geben.

Johann Wolfgang von Goethe
  Mit Zitat antworten Zitat
Benutzerbild von Die Muhkuh
Die Muhkuh

Registriert seit: 21. Aug 2003
7.332 Beiträge
 
Delphi 2009 Professional
 
#4

Re: [PHP] Datei uploaden

  Alt 5. Jan 2005, 11:20
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!
  Mit Zitat antworten Zitat
Benedikt
(Gast)

n/a Beiträge
 
#5

Re: [PHP] Datei uploaden

  Alt 5. Jan 2005, 11:38
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']);
  Mit Zitat antworten Zitat
Benutzerbild von Airblader
Airblader

Registriert seit: 29. Okt 2004
Ort: Geislingen an der Steige
742 Beiträge
 
#6

Re: [PHP] Datei uploaden

  Alt 5. Jan 2005, 12:18
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
Ingo Bürk
Es nimmt der Augenblick, was Jahre geben.

Johann Wolfgang von Goethe
  Mit Zitat antworten Zitat
Benutzerbild von Die Muhkuh
Die Muhkuh

Registriert seit: 21. Aug 2003
7.332 Beiträge
 
Delphi 2009 Professional
 
#7

Re: [PHP] Datei uploaden

  Alt 5. Jan 2005, 18:15
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!
  Mit Zitat antworten Zitat
Benutzerbild von Airblader
Airblader

Registriert seit: 29. Okt 2004
Ort: Geislingen an der Steige
742 Beiträge
 
#8

Re: [PHP] Datei uploaden

  Alt 5. Jan 2005, 18:19
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

[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
Ingo Bürk
Es nimmt der Augenblick, was Jahre geben.

Johann Wolfgang von Goethe
  Mit Zitat antworten Zitat
Benutzerbild von Die Muhkuh
Die Muhkuh

Registriert seit: 21. Aug 2003
7.332 Beiträge
 
Delphi 2009 Professional
 
#9

Re: [PHP] Datei uploaden

  Alt 5. Jan 2005, 18:23
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.
  Mit Zitat antworten Zitat
Benedikt
(Gast)

n/a Beiträge
 
#10

Re: [PHP] Datei uploaden

  Alt 5. Jan 2005, 18:50
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

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...
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:56 Uhr.
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