Avatar billede Slettet bruger
14. oktober 2005 - 15:14 Der er 19 kommentarer og
1 løsning

Upload og resize melder kun fejl på det ene host og ikke det ande

Hej eksperter, jeg har lavet et upload script, der også resize billede, med en størrelse på maks (200 * X) eller (X * 200), kører jeg script på mit eget sitet får jeg ingen fejl, men kører jeg det derimod på en kammerats kommer denne fejl frem:



Warning: getimagesize(): open_basedir restriction in effect. File(/var/tmp/phpEh5VB6) is not within the allowed path(s): (/usr/local/psa/home/vhosts/MIN_URL.dk/httpdocs) in admin.php on line 630

Warning: getimagesize(/var/tmp/phpEh5VB6): failed to open stream: Operation not permitted in admin.php on line 630

Warning: Division by zero in admin.php on line 634

Warning: imagecreatetruecolor(): Invalid image dimensions in admin.php on line 638

Warning: imagecreatefromjpeg(): open_basedir restriction in effect. File(/var/tmp/phpEh5VB6) is not within the allowed path(s): (/usr/local/psa/home/vhosts/MIN_URL.dk/httpdocs) in admin.php on line 639

Warning: imagecreatefromjpeg(/var/tmp/phpEh5VB6): failed to open stream: Operation not permitted in admin.php on line 639

Warning: imagecopyresized(): supplied argument is not a valid Image resource in admin.php on line 642

Warning: imagejpeg(): supplied argument is not a valid Image resource in admin.php on line 643

<------------------------------------------------------>

Mit script:
if($_GET['section'] == "upload_drive") {
    $name =  "drive.jpg";
}elseif ($_GET['section'] == "upload_teori") {
    $name =  "teori.jpg";
}elseif ($_GET['section'] == "upload_profile") {
    $name =  "profile.jpg";
}elseif ($_GET['section'] == "upload_contact") {
    $name =  "contact.jpg";
} elseif ($_GET['section'] == "upload_price") {
    $name =  "price.jpg";
}
            if(isset($_POST["upload"])) {
                //echo "--> " . $_FILES["upfile"]["tmp_name"];
                if(!empty($_FILES["upfile"]["tmp_name"])) {
                if(file_exists("images/" . $name)) {
                unlink("images/" . $name);
                }
                    //hvilken fil det drejer sig om
            $filename = $_FILES["upfile"]["tmp_name"];

            /*/Her viser den billedet i fuld størrelse, ændres det til 10 vil den vise billedet 10 gane mindre
            $percent = 90;

            //Finder højde og bredde på billeder
            list($width, $height) = getimagesize($filename);
            $newwidth = $width * $percent / 100;
            $newheight = $height * $percent / 100;
            */
// Set a maximum height and width
$width = 200;
$height = 200;
// Content type
//header('Content-type: image/jpeg');
// Get new dimensions
list($width_orig, $height_orig) = getimagesize($filename);
if ($width && ($width_orig < $height_orig)) {
  $width = ($height / $height_orig) * $width_orig;
} else {
  $height = ($width / $width_orig) * $height_orig;
}

            //Laver her det nye billede i true color(kun gdlib2)
            $thumb = imagecreatetruecolor($width, $height);
            $source = imagecreatefromjpeg($filename);

            //laver den nye billed størrelse
            imagecopyresized($thumb, $source, 0, 0, 0, 0, $width, $height, $width, $height);
            imagejpeg($thumb, "images/" . $name);
            $msg = "Billede (" . $name . ") er uploadet.";
            } else {
            $msg = "Du mangler et billede";
            }
            echo $msg;
            exit();
            }
?>
            <form action="<?php echo $PHP_SELF; ?>" enctype="multipart/form-data" method="POST">
            <table width="100%">
            <tr>
            <td align="left" valign="top" class="text">
            <fieldset>
            <legend>Upload billede:</legend>
            <input type="file" name="upfile">
            </fieldset>
            </td>
            </tr>

            <tr>
            <td align="left" valign="top"><input type="submit" name="upload" value="Upload"></td>
            </tr>
            </table>
            </form>









Håber I kan hjælpe mig...
Avatar billede Slettet bruger
14. oktober 2005 - 15:16 #1
Lige nu om den melder fejl eller ej, printer den:
$msg = "Billede (" . $name . ") er uploadet.";

Jeg vil jo gerne havde den til at fortælle hvis der så er fejl...
Avatar billede Slettet bruger
14. oktober 2005 - 15:18 #2
Er dette ikke om GDLIB virker på dette sitet:
Har kørt en
<?PHP
phpinfo();
?>

og fik dette under GD:

gd
GD Support  enabled 
GD Version  2.0 or higher 
FreeType Support  enabled 
FreeType Linkage  with freetype 
GIF Read Support  enabled 
GIF Create Support  enabled 
JPG Support  enabled 
PNG Support  enabled 
WBMP Support  enabled
Avatar billede Slettet bruger
14. oktober 2005 - 16:51 #3
Hmm.... slet ikke nogen der kan hjælpe mig med mit problem her?
Avatar billede erikjacobsen Ekspert
14. oktober 2005 - 16:55 #4
Du skal blot bruge http://php.net/move_uploaded_file og derefter resten af koden på den fil du har i eget filsystem.
Avatar billede Slettet bruger
14. oktober 2005 - 16:59 #5
Kan ikke lige se det for mig.
Jeg skal jo også have det resize's...

Kunne du lave scriptet, så er det nemmer at se.
Avatar billede erikjacobsen Ekspert
14. oktober 2005 - 17:17 #6
Det har jeg ikke tid til. Du skal bare flytte filen før du laver resize på den.
Avatar billede Slettet bruger
14. oktober 2005 - 17:46 #7
hmm... ja, men det er underligt at det virker på den ene side, og ikke på den anden...
Avatar billede erikjacobsen Ekspert
14. oktober 2005 - 17:48 #8
Nej, for de har forskellige indstillinger omkring safe-mode og lignende. Og man skal generelt være glad for safe-mode.
Avatar billede Slettet bruger
14. oktober 2005 - 17:52 #9
Kender du en/nogen tutorial(s) omkring, det med upload, og ikke med resize, og andre vigtige funktioner? For det er noget af det jeg godt kunne tænke mig at blive bedre til i PHP
Avatar billede Slettet bruger
15. oktober 2005 - 10:26 #10
^^
Avatar billede erikjacobsen Ekspert
15. oktober 2005 - 12:17 #11
Ikke specielt. På http://php.net/ står der altid en masse.
Avatar billede Slettet bruger
15. oktober 2005 - 12:42 #12
ja, har prøvede at kigge der men kan squ ikke finde ud af deres frem gangs måde med upload og resize
Avatar billede Slettet bruger
19. oktober 2005 - 13:50 #13
Det vil altså sige koden skal se sådan her ud:
<?PHP

/* database connection */

if($_GET['section'] == "upload_drive") {
    $name =  "drive.jpg";
}elseif ($_GET['section'] == "upload_teori") {
    $name =  "teori.jpg";
}elseif ($_GET['section'] == "upload_profile") {
    $name =  "profile.jpg";
}elseif ($_GET['section'] == "upload_contact") {
    $name =  "contact.jpg";
} elseif ($_GET['section'] == "upload_price") {
    $name =  "price.jpg";
}
            if(isset($_POST["upload"])) {
                if(!empty($_FILES["upfile"]["tmp_name"])) {
               
                if(file_exists("images/" . $name)) {
                  unlink("images/" . $name);
                }
            //hvilken fil det drejer sig om
            $filename = $_FILES["upfile"]["tmp_name"];

// Set a maximum height and width
$width = 200;
$height = 200;
// Content type
//header('Content-type: image/jpeg');
// Get new dimensions
list($width_orig, $height_orig) = getimagesize($filename);
if ($width && ($width_orig < $height_orig)) {
  $width = ($height / $height_orig) * $width_orig;
} else {
  $height = ($width / $width_orig) * $height_orig;
}
            move_uploaded_file($filename, "images/" . $name);
            //Laver her det nye billede i true color(kun gdlib2)
            $thumb = imagecreatetruecolor($width, $height);
            $source = imagecreatefromjpeg($filename);

            //laver den nye billed størrelse
            imagecopyresized($thumb, $source, 0, 0, 0, 0, $width, $height, $width, $height);
            imagejpeg($thumb, "images/" . $name);
            $msg = "Billede (" . $name . ") er uploadet.";
            } else {
            $msg = "Du mangler et billede";
            }
            echo $msg;
            exit();
            }
?>
            <form action="<?php echo $PHP_SELF; ?>" enctype="multipart/form-data" method="POST">
            <table width="100%">
            <tr>
            <td align="left" valign="top" class="text">
            <fieldset>
            <legend>Upload billede:</legend>
            <input type="file" name="upfile">
            </fieldset>
            </td>
            </tr>

            <tr>
            <td align="left" valign="top"><input type="submit" name="upload" value="Upload"></td>
            </tr>
            </table>
            </form>
Avatar billede Slettet bruger
19. oktober 2005 - 13:51 #14
Skal "//header('Content-type: image/jpeg');" var udkommenteret eller?
Avatar billede erikjacobsen Ekspert
19. oktober 2005 - 17:03 #15
Virker det du skriver?

Jeg ville tro at

      $source = imagecreatefromjpeg($filename);

skulle være

      $source = imagecreatefromjpeg("images/" . $name);
Avatar billede Slettet bruger
31. juli 2006 - 20:46 #16
svar?
Avatar billede erikjacobsen Ekspert
31. juli 2006 - 21:00 #17
Ingen point til mig, tak.

Hvad endte det med ?
Avatar billede Slettet bruger
31. juli 2006 - 21:30 #18
Ja det kan jeg squ ikke engang huske nu.
Men tror du havde ret med hensyn til $source.

    $source = imagecreatefromjpeg("images/" . $name);
Avatar billede erikjacobsen Ekspert
31. juli 2006 - 21:36 #19
Ok, der er kun os to i spørgsmålet, så svar selv, accepter eget svar.
Avatar billede Slettet bruger
31. juli 2006 - 22:13 #20
mange tak du... ;D
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester