图片在PHP中小型化 - 死链接

时间:2014-03-03 14:57:18

标签: php upload

我有一个PHP代码,可以让用户小心上传图片。

此代码位于“miniature.php”文件中,它为每个新图片创建一个文件。

将图片上传到另一个文件(userform)后,会显示预览(缩略图)。

然而,这是一个死链接(我可以看到一点破碎的图片)。 URL就是这样:

http://www.mywebsite.com/annonce/miniature.php?pic=upload/XStmQFRY/PICTURE_UPLOADED.JPG&w_max=70&h_max=60

另一方面,下面的网址可以显示原始图片:

http://www.mywebsite.com/annonce/upload/XStmQFRY/PICTURE_UPLOADED.JPG

如果您有任何想法......请不要犹豫!

谢谢:)

miniature.php代码:

<?php
error_reporting(E_ALL ^ E_NOTICE);


$taille = getimagesize($pic); 
$h_i = $taille[1]; 
$w_i = $taille[0]; 
        if($h_i >$h_max) 
    { 
    $convert=$h_max/$h_i; 
    $h_i=$h_max; 
    $w_i=ceil($w_i*$convert); 
    } 
    if($w_i >$w_max) 
    { 
    $convert=$w_max/$w_i; 
    $w_i=$w_max; 
    $h_i=ceil($h_i*$convert); 
    } ; 

$largeur = $w_i;
$hauteur = $h_i;

header("Content-Type: image/jpeg");
list($width, $height, $type, $attr) = getimagesize($pic);

if($type == "1")
{
$img_in = imagecreatefromgif($pic);
}

if($type == "2")
{
$img_in = imagecreatefromjpeg($pic);
}

if($type == "3")
{
$img_in = imagecreatefrompng($pic);
}


$img_out = imagecreatetruecolor($largeur, $hauteur);
imagecopyresampled($img_out, $img_in, 0, 0, 0, 0, imagesx($img_out), imagesy($img_out), imagesx($img_in), imagesy($img_in));
$t = imagejpeg($img_out);
echo $t;

?>

upload-file.php代码:

<?php

$repdossier = $_GET['repdossier'];

$uploaddir = 'upload/'.$repdossier.'/';

$file = $uploaddir . basename($_FILES['uploadfile']['name']); 

$dir2 = opendir("upload/$repdossier/");

$getpages=0;

while ($File = readdir($dir2)){
                            if($File != "." && $File != ".." && $File != "" )
                              { $getpages++;

                              }

              }

closedir($dir2);

$calcul = $getpages;

if( @is_file($file) )
{
echo "error2";
}
else

{

if( $calcul >= 5)
{
echo "error1";
}

else

{



if (move_uploaded_file($_FILES['uploadfile']['tmp_name'], $file)) { 
  echo "success"; 
} else {
        echo "error";
}
}



}

?>

从all-index.php中提取Javascript(显示生成的URL):

                if(response==="success"){
                    $('<li></li>').appendTo('#files').html('<img src="miniature.php?pic=upload/<?php echo $repdossier; ?>/'+file+'&w_max=70&h_max=60" height="60" width="70" alt="" /><br />').addClass('success');
                } 

1 个答案:

答案 0 :(得分:0)

您编辑了问题,删除了错误的代码并输入了一些无关的Javascript。

错误在于:

<?php
error_reporting(E_ALL ^ E_NOTICE);

$taille = getimagesize("$pic");

$pic必须是现有图片的有效路径。截至目前,该变量为空(未定义)。