تالار گفتمان nCIS.ir

نسخه‌ی کامل: ایجاد تگ img بعد از ساخت thumbnail (حل شد)
شما در حال مشاهده نسخه آرشیو هستید. برای مشاهده نسخه کامل کلیک کنید.
وقتی از عکس اصلی یه thumbnail میسازم کل صفحه به شکل زیر در میاد
چرا؟
[attachment=57]




function createThumbnail(){
    
    if(isset($_POST['submit'])){
        if(isset($_FILES['picture']) && !empty($_FILES['picture']['name'])){
            

                            $pic_name = $_FILES['picture']['name'];

                            $pic_temp = $_FILES['picture']['tmp_name'];

                            $pic_size = $_FILES['picture']['size'];

                            $pic_type = $_FILES['picture']['type'];

                            $pic_error = $_FILES['picture']['error'];

                            

                            $validExt = array('image/jpeg','image/gif','image/png');

                            if($pic_error == 0 ){



                                    if($pic_size <= 16777216){

                                            if(in_array($pic_type,$validExt)){

                                                    if($pic_type == $validExt[0] ){

                                                            $Ext = '.jpg';	

                                                    }

                                                    elseif($pic_type == $validExt[1]){

                                                            $Ext = '.gif';

                                                    }

                                                    elseif($pic_type == $validExt[2]){

                                                            $Ext = '.png';

                                                    }

                                                    $new_name = md5(rand(0,9999)).$Ext;

                                                     move_uploaded_file($pic_temp,''.$new_name);
                                                    $pic = $new_name;
                                                             $src = ImageCreateFromJPEG($pic);
                                                            

                                                           $width = imagesx($src).PHP_EOL;
                                                           $height = imagesy($src).PHP_EOL;
                                                           $x = $width/2 .PHP_EOL;
                                                           $y = $height/2 .PHP_EOL;
                                                          $img = ImageCreateTrueColor($x,$y);
                                                          imagecopyresampled($img, $src, 0, 0, 0, 0, $x, $y, $width, $height);
                                                          header('Content-Type: image/jpg');
                                                          imageJPEG($img,"thumb/".$pic);
                                                             
                                                          
                                                     

                                            }

                                            else{

                                                    echo  "این نوع فایل برای آپلود مجاز نیست";

                                            }



                                    }

                                    else{

                                            echo  "حجم فایل بیش از حد  مجاز است";

                                    }



                            }else{

                                    echo   "هنگام آپلود مشکلی پش آمده";

                            }



                    }else{

                        echo "لطفا یک عکس انتخاب کنید";

                    }
            
    
        }
    }


خوب شما آدرس عکس رو که توی src تگ img گذاشتین مستقیماً توی مرورگر باز کنید ببینید چه خطایی میده.
(29-03-1394، 12:52 ق.ظ)ADMIN نوشته: [ -> ]خوب شما آدرس عکس رو که توی src تگ img گذاشتین مستقیماً توی مرورگر باز کنید ببینید چه خطایی میده.

اصلا من تگ img ندارم تو صفحه فقط عکسو ذخیره میکنم که مشکلی هم نداره
اما به محض اینکه عکس ذخیره میشه صفحه refresh میشه و این مدلی میشه

کد داخل صفحه هم اینجوری میشه

<html>
<head>
<meta name="viewport" content="width=device-width, minimum-scale=0.1"></head>
<body style="margin: 0px;">
<img style="-webkit-user-select: none" src="http://localhost/trainphp/gd.php">
</body>
</html>
باید کدتون رو ببینم. جایی که متد createThumbnail رو صدا زدین و کدهایی که بعدش اجرا میشه منظورمه.
این کل کدها

function createThumbnail(){
   
   if(isset($_POST['submit'])){
       if(isset($_FILES['picture']) && !empty($_FILES['picture']['name'])){
           

                           $pic_name = $_FILES['picture']['name'];

                           $pic_temp = $_FILES['picture']['tmp_name'];

                           $pic_size = $_FILES['picture']['size'];

                           $pic_type = $_FILES['picture']['type'];

                           $pic_error = $_FILES['picture']['error'];

                           

                           $validExt = array('image/jpeg','image/gif','image/png');

                           if($pic_error == 0 ){



                                   if($pic_size <= 16777216){

                                           if(in_array($pic_type,$validExt)){

                                                   if($pic_type == $validExt[0] ){

                                                           $Ext = '.jpg'; 

                                                   }

                                                   elseif($pic_type == $validExt[1]){

                                                           $Ext = '.gif';

                                                   }

                                                   elseif($pic_type == $validExt[2]){

                                                           $Ext = '.png';

                                                   }

                                                   $new_name = md5(rand(0,9999)).$Ext;

                                                    move_uploaded_file($pic_temp,''.$new_name);
                                                   $pic = $new_name;
                                                            $src = ImageCreateFromJPEG($pic);
                                                           

                                                          $width = imagesx($src).PHP_EOL;
                                                          $height = imagesy($src).PHP_EOL;
                                                          $x = $width/2 .PHP_EOL;
                                                          $y = $height/2 .PHP_EOL;
                                                         $img = ImageCreateTrueColor($x,$y);
                                                         imagecopyresampled($img, $src, 0, 0, 0, 0, $x, $y, $width, $height);
                                                         header('Content-Type: image/jpg');
                                                         imageJPEG($img,"thumb/".$pic);
                                                            
                                                         
                                                    

                                           }

                                           else{

                                                   echo  "این نوع فایل برای آپلود مجاز نیست";

                                           }



                                   }

                                   else{

                                           echo  "حجم فایل بیش از حد  مجاز است";

                                   }



                           }else{

                                   echo   "هنگام آپلود مشکلی پش آمده";

                           }



                   }else{

                       echo "لطفا یک عکس انتخاب کنید";

                   }
           
   
       }
   }




کد:
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />

<form action="" method="post" enctype="multipart/form-data">
   <input type="file" name="picture">
   <input type="submit" name="submit">
   
</form>




createThumbnail();



دقیقا به همین ترتیب تو فایل نوشته شدن
این کد رو امتحان کنید:
function createThumbnail()
{
    if(isset($_POST['submit'])) {
        if(isset($_FILES['picture']) && !empty($_FILES['picture']['name'])) {
            $pic_name = $_FILES['picture']['name'];
            $pic_temp = $_FILES['picture']['tmp_name'];
            $pic_size = $_FILES['picture']['size'];
            $pic_type = $_FILES['picture']['type'];
            $pic_error = $_FILES['picture']['error'];
            $validExt = array('image/jpeg', 'image/gif', 'image/png');
            if($pic_error == 0 ){
                if($pic_size <= 16777216) {
                    if(in_array($pic_type, $validExt)) {
                        if($pic_type == $validExt[0]) {
                            $ext = '.jpg';
                        }
                        elseif($pic_type == $validExt[1]){
                            $ext = '.gif';
                        }
                        elseif($pic_type == $validExt[2]){
                            $ext = '.png';
                        }
                        $newName = md5(rand(0,9999)) . $ext;
                        move_uploaded_file($pic_temp, $newName);
                        $src = ImageCreateFromJPEG($newName);
                        $width = ImageSX($src);
                        $height = ImageSY($src);
                        $x = $width / 2;
                        $y = $height / 2;
                        $dst = ImageCreateTrueColor($x, $y);
                        ImageCopyResampled($dst, $src, 0, 0, 0, 0, $x, $y, $width, $height);
                        ImageJPEG($dst, 'thumb/' . $newName);
                        ImageDestroy($dst);
                        ImageDestroy($src);
                    }
                    else {
                        echo 'این نوع فایل برای آپلود مجاز نیست';
                    }
                }
                else {
                    echo 'حجم فایل بیش از حد  مجاز است';
                }
            }
            else {
                echo 'هنگام آپلود مشکلی پش آمده';
            }
        }
        else {
            echo 'لطفا یک عکس انتخاب کنید';
        }
    }
}
وقتی عکس رو توی فایل ذخیره میکنید و مستقیماً نمایش نمیدین، نباید هدر Content-Type رو ست کنید.
از همین الان عادت کنید کدها رو هم مرتب و خوانا بنویسید.
(29-03-1394، 01:23 ق.ظ)ADMIN نوشته: [ -> ]از همین الان عادت کنید کدها رو هم مرتب و خوانا بنویسید.

معمولا مرتب مینویسم این کدو انقدر تست کردمو ویرایش کردم به هم ریخته بود
درست شد مرسی