WCM Forum

WCM Forum (http://www.wcm.at/forum/index.php)
-   Programmierung (http://www.wcm.at/forum/forumdisplay.php?f=17)
-   -   Datei-Upload funktioniert nicht (http://www.wcm.at/forum/showthread.php?t=193068)

Satan_666 06.06.2006 10:32

Datei-Upload funktioniert nicht
 
Hi @all,

ich möchte über ein Web-Formular ein Bild auf meinen Webspace kopieren; das unten stehende php-Script sollte das Speichern der Datei übernehmen:

PHP-Code:

  $banner=$_POST['banner'];
  
$fziel="banner/";
  
$datei_max="30720";
  
$ftype="falsch";
  
$fm=0;
  
$nr=0;
  if(
$banner):
    if(
$_FILES['banner']['type'] == "image/gif"):
      
$ftype="richtig";
      
$btyp=".gif";
    endif;
    if(
$_FILES['banner']['type'] == "image/jpg"):
      
$ftype="richtig";
      
$btyp=".jpg";
    endif;
    if(
$_FILES['banner']['type'] == "image/jpeg"):
      
$ftype="richtig";
      
$btyp=".jpg";
    endif;
    if(
$_FILES['banner']['type'] == "image/pjpeg"):
      
$ftype="richtig";
      
$btyp=".jpg";
    endif;
    if(
$ftype == "falsch"):
      
$fm=1;
    endif;
    if(
$_FILES['banner']['size'] > $datei_max):
      
$fm=2;
    endif;
    if(
$fm==0):
      
$abmessung=getimagesize($banner);
      if(
$abmessung[0] > 500):
        
$fm=6;
      endif;
      if(
$abmessung[1] > 80):
        
$fm=7;
      endif;
    endif;
  else:
    
$fm=3;
  endif;
  if(
$fm == 0):
    
$lfdnr=$nr 1;
    
$bannername="b".$lfdnr."".$btyp;
    
$ziel=$fziel.$bannername;
    
$stat=copy($banner$ziel);
  endif; 

Tut es aber nicht; keine Ahnung, wieso. Bei mir zu Hause unter XAMPP funktioniert das Script wie gewünscht, am Webspace kriege ich leider nur eine Fehlermeldung beim Copy (letzte Zeile im Script). Und: ja, ich habe für das Verzeichnis banner am Server die Dateiattribute auf 777 gesetzt, daran kann es also nicht liegen.

Wäre für etwaige Hinweise, die zur Lösung des Problemes beiträgt, sehr dankbar!

hewlett 06.06.2006 14:57

genaue fehlermeldung?

Satan_666 06.06.2006 15:27

Warning: copy() [function.copy]: Unable to access in /var/www/html/web474/html/putbanner.php on line 46

Es schaut für mich so aus, als ob die Datei einfach nicht auf den Server übertragen wird. Zumindest ist die Variable $banner immer leer....

Satan_666 06.06.2006 15:44

Hier übrigens der Teil aus dem HTML-Dokument:

PHP-Code:

<form enctype="multipart/form-data" method="post" action="putbanner.php">
  <
table border="0" align="center" width="80%">
    <
tr>
      <
td align="right" valign="top">Ihr Name:</td>
      <
td><input class="bunt" type="text" name="nname" size="53" maxlength="40" value=""/></td>
    </
tr>
    <
tr>
      <
td align="right" valign="top">Ihre eMail-Adresse:</td>
      <
td><input class="bunt" type="text" name="email" size="53" maxlength="40" value=""/></td>
    </
tr>
    <
tr>
      <
td align="right" valign="top">Ihr Banner:</td>
      <
td><input class="bunt" name="banner" type="file" size="31" rows="8" value=""/></td>
    </
tr>
    <
tr>
      <
td align="right" valign="top">Ihre Web-Adresse:</td>
      <
td><input class="bunt" type="text" name="link" size="53" maxlength="40" value=""/></td>
    </
tr>
    <
tr>
      <
td></td>
      <
td><input type="submit" value="Abschicken"/>
        <
input type="hidden" name="bereich" value="99"/>
        <
input type="hidden" name="sub" value="6"/>
        <
input type="hidden" name="vonbereich" value="7"/>
        <
input type="hidden" name="vonsub" value="7"/>
      </
td>
    </
tr>
  </
table>
</
form


reemrev 06.06.2006 19:19

$ziel=$fziel.$bannername;
$stat=copy($banner, $ziel);

Versuche mal hier diese Zeile anzuhängen
chmod( $ziel, 0755);

Hatte selbes Problem, zu Hause gings, am Server nicht mehr.
(ps: $ziel wäre die hochgeladenen Datei)

Satan_666 07.06.2006 14:19

@reemrev:

Danke für den Tipp; bringt leider auch nichts. Hatte schon vorher befürchtet, dass das nichts bringt, weil es so aussieht, als ob die Datei einfach nicht auf den Server übertragen wird. Wie gesagt, die Variable $banner ist nach dem Aufruf des Scripts leer, obwohl dort ja der Pfad und Name der Datei drin stehen sollte.

Ist es denkbar, dass der Provider den HTML-Upload entweder falsch eingerichtet hat oder nicht erlaubt?

hewlett 07.06.2006 14:36

Code:

copy($_FILES['banner']['tmp_name'],"tmp".$ext);
in $ext steht die Dateiendung.

So machs ich, und so funktionierst auch.

Lies dir mal das durch http://www.php-center.de/de-html-man...le-upload.html dann wird dir vielleicht einiges klarer!

T.dot 07.06.2006 14:44

Jo, ich glaub das Hauptproblem liegt daran, dass einfach
$banner=$_POST['banner'];
nicht funktioniert.

Wirf mal Google zu dem Thema an, oder schau hier rein:
http://de.php.net/manual/en/features.file-upload.php

Satan_666 07.06.2006 14:57

Thanks - genau DAS hat geholfen....

:bier:

reemrev 11.06.2006 21:05

kurze Frage noch:
lag der Fehler in dieser Zeile "$banner=$_POST['banner'];"?
Hab mal eine Stunde gebraucht um zu erkennen, dass $_SESSION['banner']= $_POST['banner'] nicht funktioniert, $banner=$_POST['banner'] hingegen schon.


Alle Zeitangaben in WEZ +2. Es ist jetzt 05:54 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
© 2009 FSL Verlag