php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2005-2

 
 
LinkBack Themen-Optionen Bewertung: Bewertung: 1 Stimmen, 1,00 durchschnittlich.
Alt 29.06.2005, 14:50  
Gast
 
Beiträge: n/a
Standard picture upload script läuft nicht

Kann mir jemand sagen wo hier der Fehler ist?
Es läuft nähmlich gar nix

PHP-Code:

<? /*== FUNCTIONS ==*/
    
function getFileExtension($str) {

        
$i strrpos($str,".");
        if (!
$i) { return ""; }

        
$l strlen($str) - $i;
        
$ext substr($str,$i+1,$l);

        return 
$ext;

    }
?>

<?
if ($REQUEST_METHOD == "POST")
{
    
/* SUBMITTED INFORMATION - use what you need
     * temporary filename (pointer): $imgfile
     * original filename           : $imgfile_name
     * size of uploaded file       : $imgfile_size
     * mime-type of uploaded file  : $imgfile_type
     */

     /*== upload directory where the file will be stored
          relative to where script is run ==*/
    
    
$uploaddir ".";
    
    
/*== get file extension (fn at bottom of script) ==*/
    /*== checks to see if image file, if not do not allow upload ==*/
    
$pext getFileExtension($imgfile_name);
    
$pext strtolower($pext);
    if ((
$pext != "jpg")  && ($pext != "jpeg"))
    {
        
$error1 =  "<h1>ERROR</h1>Image Extension Unknown.
"
;
        
$error2 "

Please upload only a JPEG image with the extension .jpg or .jpeg ONLY

"
;
        
$error3 "The file you uploaded had the following extension: $pext</p>\n";

        
/*== delete uploaded file ==*/
        
unlink($imgfile);
        exit();
    }


    
//-- RE-SIZING UPLOADED IMAGE
    /*== only resize if the image is larger than 250 x 200 ==*/
    
$imgsize GetImageSize($imgfile);

    
/*== check size  0=width, 1=height ==*/
    
if (($imgsize[0] > 250) || ($imgsize[1] > 200))
    {
        
/*== temp image file -- use "tempnam()" to generate the temp
             file name. This is done so if multiple people access the
            script at once they won't ruin each other's temp file ==*/
        //$tmpimg = tempnam("/tmp", "MKUP");

        /*== RESIZE PROCESS
             1. decompress jpeg image to pnm file (a raw image type)
             2. scale pnm image
             3. compress pnm file to jpeg image
        ==*/
        
        /*== Step 1: djpeg decompresses jpeg to pnm ==*/
        //system("djpeg $imgfile >$tmpimg");
        

        /*== Steps 2&3: scale image using pnmscale and then
             pipe into cjpeg to output jpeg file ==*/
        //system("pnmscale -xy 250 200 $tmpimg | cjpeg -smoo 10 -qual 50 >$imgfile");

        /*== remove temp image ==*/
        //unlink($tmpimg);
    
}

    
/*== setup final file location and name ==*/
    /*== change spaces to underscores in filename  ==*/
    
$final_filename str_replace(" ""_"$imgfile_name);
    
$newfile $uploaddir "/$final_filename";
    
    
/*== do extra security check to prevent malicious abuse==*/
    
if (is_uploaded_file($imgfile))
    {
       
/*== move file to proper directory ==*/
       
if (!copy($imgfile,"$newfile"))
       {
          
/*== if an error occurs the file could not
               be written, read or possibly does not exist ==*/            
          
$error4 "Error Uploading File.";
          exit();
       }
     }

    
/*== delete the temporary uploaded file ==*/
    
unlink($imgfile);

    
$newimage "<img src=\\"$final_filename">";

    
/*== DO WHATEVER ELSE YOU WANT
         SUCH AS INSERT DATA INTO A DATABASE  ==*/

}
?>


<html>

<head>
    <title>Image upload test</title>
</head>

<body bgcolor="#FFFFFF">

   <? if isset($error1) echo $error1 ?>
   <? if isset($error2) echo $error2 ?>
   <? if isset($error3) echo $error3 ?>
   <? if isset($error4) echo $error4 ?>
   
   <? if isset($newimage) echo $newimage ?>

    <h2>Upload an Image</H2>

    <form action="<?=$SCRIPT_NAME?>" method="POST" enctype="multipart/form-data">
   

    

Upload Image: <input type="file" name="imgfile">

    <font size="1">Click browse to upload a local file</font>

    

    <input type="submit" value="Upload Image">
    </form>

</body>
</html>
 
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 29.06.2005, 14:56  
Erfahrener Benutzer
 
Registriert seit: 05.04.2005
Beiträge: 1.333
Freeaak ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Was heißt
Zitat:
Es läuft nähmlich gar nix
Gibts nen Fehler?
__________________
"Wenn du nicht weißt, was du tust: Machs mit Eleganz!"

(Murphy's Gesetze)
Freeaak ist offline  
Alt 29.06.2005, 14:57  
Gast
 
Beiträge: n/a
Standard

jop kann ich...
und wenn du jetzt den code in nen anständigen editor(z.B. webweaver) kopierst, dann findest du sie auch...
 
Alt 29.06.2005, 15:28  
Gast
 
Beiträge: n/a
Standard

Danke für den Tip mit webweaver. (auch brauch sonst immer nen texteditor).
By the way: Kennst du sowas auch für Linux?

Da haben wir ja auch den Fehler:
[99] Parse error: syntax error, unexpected T_VARIABLE

Wie muss denn das
PHP-Code:
$newimage "<img src=\\"$final_filename">"
richitg heissen?
 
Alt 29.06.2005, 15:31  
Gast
 
Beiträge: n/a
Standard

PHP-Code:
<?php

$newimage 
'[img]'.$final_filename.'[/img]';

// oder
$newimage "<img src=\"".$final_filename."\">";

?>
 
Alt 30.06.2005, 10:55  
Gast
 
Beiträge: n/a
Standard Neue Fassung

CIX88 Danke für den Tipp. Habe den ( Fehler beim Isset auch gleich korrigiert.
Dann hab ich mal versucht mein Hirn zu aktivieren und hab das Skript einiges gekürzt.

Allerdings wird diese condition nie true

PHP-Code:
if (($REQUEST_METHOD == "POST") && isset($_POST['imgfile'])) 
An was könnte das wohl liegen?

Hier ist die neue vereinfachte version nochmals komplett:

PHP-Code:
<? /*== FUNCTIONS ==*/
    
function getFileExtension($str) {
      
$i strrpos($str,".");
      if (!
$i) { return ""; }
      
$l strlen($str) - $i;
      
$ext substr($str,$i+1,$l);
      return 
$ext;
    }
?>

<?
if (($REQUEST_METHOD == "POST") && isset($_POST['imgfile']))
{
    
$debug "entering method";

    
/* SUBMITTED INFORMATION - use what you need
     * original filename           : $imgfile_name
     * size of uploaded file       : $imgfile_size
     */
     
$imgfile_name =  ($_POST['imgfile']);
     
     
/*== upload directory where the file will be stored
          relative to where script is run ==*/
    
$uploaddir ".";
    
    
/*== get file extension (fn at bottom of script) ==*/
    /*== checks to see if image file, if not do not allow upload ==*/
    
$fileExtension getFileExtension($imgfile_name);
    
$fileExtension strtolower($fileExtension);
    if ((
$fileExtension != "jpg")  && ($fileExtension != "jpeg"))
    {
        
$error1 =  "<h1>ERROR</h1>Image Extension Unknown.
"
;
        
$error2 "

Please upload only a JPEG image with the extension .jpg or .jpeg ONLY

"
;
        
$error3 "The file you uploaded had the following extension: $pext</p>\n";

        
/*== delete uploaded file ==*/
        
unlink($imgfile_name);
        exit();
    }

    
//-- CHCECK IMAGE SIZE OF UPLOADED IMAGE
    
$imgsize GetImageSize($imgfile_name);

    
/*== check size  0=width, 1=height ==*/
    
$maxwidth 250;
    
$maxheight 250;
    if ((
$imgsize[0] > maxwidth) || ($imgsize[1] > maxheight))
    {
      
$error4 "Imageszize is bigger as ".$maxwitdh."x".$maxheight;
    }
    else
    {
     
/*== setup final file location and name ==*/
     /*== change spaces to underscores in filename  ==*/
     
$final_filename str_replace(" ""_"$imgfile_name);
     
$newfile $uploaddir "/$final_filename";
    
     
$newimage "<img src=\"".$final_filename."\">";
      
/*== DO WHATEVER ELSE YOU WANT
         SUCH AS INSERT DATA INTO A DATABASE  ==*/
     
}
}
else
{
    
$debug "POST conditions are not true";
}
?>


<html>

<head>
    <title>Image upload test</title>
</head>

<body bgcolor="#FFFFFF">

   <? if (isset($error1)) echo $error1 ?>
   <? if (isset($error2)) echo $error2 ?>
   <? if (isset($error3)) echo $error3 ?>
   <? if (isset($error4)) echo $error4 ?>
   
   <? if (isset($debug)) echo $debug ?>
   <? if (isset($newimage)) echo $newimage ?>

    <h2>Upload an Image</H2>

    <form action="upload-test.php" method="POST" enctype="multipart/form-data">

    

Upload Image: <input type="file" name="imgfile">

    <font size="1">Click browse to upload a local file</font>

    

    <input type="submit" value="Upload Image">
    </form>

</body>
</html>
 
Alt 30.06.2005, 11:20  
Erfahrener Benutzer
 
Registriert seit: 06.01.2005
Beiträge: 308
hekto
Standard

muesste das
if ($REQUEST_METHOD == "POST")

nicht

if ($REQUEST_METHOD == "$_POST")

heißen
__________________
Gruß
Hekto
hekto ist offline  
Alt 30.06.2005, 11:25  
Moderator
 
Benutzerbild von robo47
 
Registriert seit: 03.09.2004
Beiträge: 11.798
PHP-Kenntnisse:
Fortgeschritten
robo47 ist ein wunderbarer Anblickrobo47 ist ein wunderbarer Anblickrobo47 ist ein wunderbarer Anblickrobo47 ist ein wunderbarer Anblickrobo47 ist ein wunderbarer Anblickrobo47 ist ein wunderbarer Anblickrobo47 ist ein wunderbarer Anblickrobo47 ist ein wunderbarer Anblick
Standard

Zitat:
Zitat von hekto
muesste das
if ($REQUEST_METHOD == "POST")

nicht

if ($REQUEST_METHOD == "$_POST")

heißen
nein, aber es sollte, damit das script auch auf register_globals = off läuft

so heißen:

PHP-Code:
<?php
$_SERVER
['REQUEST_METHOD'] == 'POST'
?>
Aus dem Handbuch:
Zitat:
'REQUEST_METHOD'
Welche Anforderungsmethode benutzt wurde, um auf die Seite zuzugreifen, z. B. 'GET', 'HEAD', 'POST', 'PUT'.
mfg
robo47
robo47 ist offline  
Alt 30.06.2005, 13:40  
Gast
 
Beiträge: n/a
Standard

Besten Dank für all die Tipps. Über $_SERVER und $_FILES siehts gut aus mit dem Zugriff. Jetzt ist das Teil auch wirklich schön geworden.

Allerdings funktioniert das

if (!copy($imgfile,$newfile))

nicht. Um aus der temporairen Datei das endgültige File zu schreiben.
Irgendjemand eine Idee? Kann mal jemand bei sich das skript testen?

Da ich nochmals einiges vereinfacht, verbessert und verschönert hab hier nochmals das skript.


PHP-Code:

<?
 
if ($_SERVER['REQUEST_METHOD'] == "POST")
{
    echo 
'Here is some debugging info:';
    
print_r($_FILES);
    echo 
'
'
;

    
/* SUBMITTED INFORMATION - use what you need
     * errorcode                   : $errorcode
     * original filename           : $imgfile_name
     * temporary filename          : $imgfile_temp
     * size of uploaded file       : $imgfile_size
     * mime-type of uploaded file  : $imgfile_mimetype
     */
     
$errorcode = ($_FILES['imgfile']['error']);         // 0 is good
     
$imgfile_temp = ($_FILES['imgfile']['tmp_name']);
     
$imgfile_name = ($_FILES['imgfile']['name']);
     
$imgfile_size = ($_FILES['imgfile']['size']);
     
$imgfile_mimetype = ($_FILES['imgfile']['mimetype']);

     
/*== upload directory where the file will be stored
          relative to where script is run ==*/
    
$uploaddir "./";
    
    
/*== get file extension  ==*/
    
$fileExtension strrchr($imgfile_name,".");
    
/*== check fileextesion, if not correct do not allow upload ==*/
    //echo  "name: ".$imgfile_name."filextension: ".$fileExtension;
    
$fileExtension strtolower($fileExtension);
    if ((
$fileExtension != ".jpg")  && ($fileExtension != ".jpeg"))
    {
        
$error1 =  "<h1>ERROR</h1>Image Extension Unknown.
"
;
        
$error2 "Please upload only a JPEG image with the extension .jpg or .jpeg ONLY
"
;
        
$error3 "The file you uploaded had the following extension: $fileExtension</p>\n";
        
/*== delete uploaded file ==*/
        //unlink($imgfile_name);
    
}
    else
    {
      
//-- CHECK IMAGE SIZE OF UPLOADED IMAGE
      
$imgsize GetImageSize($imgfile_temp);
      
/*== check size  0=width, 1=height ==*/
      
$maxwidth 2500;
      
$maxheight 2500;
      if ((
$imgsize[0] > $maxwidth) || ($imgsize[1] > $maxheight))
      {
        
$error4 "
<h2>ERROR</h2>Imageszize is bigger as "
.$maxwidth."x".$maxheight;
        
$error5 "
Your image has width "
.$imgsize[0]." and height ".$imgsize[1]."
"
;
      }
      else
      {
        
/*== setup final file location and name ==*/
        /*== change spaces to underscores in filename  ==*/
        
$final_filename str_replace(" ""_"$imgfile_name);
        
$newfile $uploaddir.$final_filename;

        
/*== do extra security check to prevent malicious abuse==*/
        
if (is_uploaded_file($imgfile_temp))
        {
          
/*== the file exists only temporary therefore we copy file to proper directory ==*/
          
if (!copy($imgfile,$newfile))
          {
            
/*== if an error occurs the file could not be written, read or possibly does not exist ==*/
            
print "Error Uploading File.";
          }
          else
          {
           echo
"File is succesfully copied to ".$newfile;
          }
         }
        
$newimage "<img src=\"".$final_filename."\">";
        
/*== DO WHATEVER ELSE YOU WANT
           SUCH AS INSERT DATA INTO A DATABASE  ==*/
       
}
     }
}
else
{
    
$debug "POST conditions are not true";
}
?>

<html>
<head>
    <title>Image upload test</title>
</head>

<body bgcolor="#FFFFFF">

   <? if (isset($error1)) echo $error1 ?>
   <? if (isset($error2)) echo $error2 ?>
   <? if (isset($error3)) echo $error3 ?>
   <? if (isset($error4)) echo $error4 ?>
   <? if (isset($error5)) echo $error5 ?>
   
   <? if (isset($newimage)) echo $newimage."
?>
   <? echo "filextension: ".$fileExtension." server method: ".$_SERVER['REQUEST_METHOD'?>

    <h2>Upload an Image</H2>

    <form action="upload-test.php" method="POST" enctype="multipart/form-data">

    

Upload Image: <input type="file" name="imgfile">

    <font size="1">Click browse to upload a local file</font>

    

    <input type="submit" value="Upload Image">
    </form>

</body>
</html>
 
Alt 30.06.2005, 13:44  
Gast
 
Beiträge: n/a
Standard

move_uploaded_file() ist noch besser als copy(), aber funktioniert bei mir auch nicht
 
 


Themen-Optionen
Thema bewerten
Thema bewerten:

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 an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Upload Script hat Probleme mit versch. Browsern [MimeType] fdm PHP Tipps 2008 11 27.07.2008 23:35
Upload script. 2er2 Trash 2 07.04.2008 10:24
Bilder Upload Script einballimwasser Trash 3 24.06.2007 03:45
Upload Script + Multible Server cyberstorm PHP Tipps 2006 5 11.10.2006 19:43
Upload Script -CyberPlanet- Trash 4 22.05.2006 11:39
Probelem bei meinem Upload Script für Bilder wiegia086 PHP Tipps 2006 3 17.03.2006 09:14
Daten Upload Script Hilfe!! PHP Tipps 2007 9 29.12.2005 10:39
Suche Upload Script Beitragsarchiv 1 20.07.2005 15:26
Upload Script PHP Tipps 2005-2 8 01.07.2005 08:45
upload script ändern PHP Tipps 2005 30 23.03.2005 20:30
suche upload script Beitragsarchiv 6 14.02.2005 22:25
Upload Script funktioniert lokal nicht?! TheTommynator PHP Tipps 2005 16 22.01.2005 23:42
Upload Script. PHP Tipps 2004 4 05.11.2004 10:53
Ich bin auf der Suche nach einem fertigen Menü Upload Script Beitragsarchiv 7 22.08.2004 18:53
Upload mit Fehlermeldung "The script whose uid is 982 i PHP Tipps 2004 2 06.07.2004 13:18

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
is_uploaded_file skript läuft lang 5, system(\djpeg $imgfile, 1click upload script, h2 upload, script linux picture html, file upload image type, php file upload check if jpeg was uploaded completely, nicht-picture.de, image width beim upload ändern php, image upload php file type check, picture upload löschen, webweaver debug print

Alle Zeitangaben in WEZ +1. Es ist jetzt 15:47 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.