PDA

View Full Version : سوال: عدم ساخت thumbnail



css-man
یک شنبه 14 مهر 1392, 23:58 عصر
دوستا ن این تابع منو یه نگا ه بندازید ببینید کجاش ایراد داره هر کاری میکنم جواب نمیده عکس بند انگشتی رو درست نمی کنه



function thumbnail($path,$imgname,$type,$des)
{
$thumbWidth = 100;
$thumbHeight = 100;
$source=$path.$imgname;
if($type==".jpg")
{
$orginal=imagecreatefromjpeg($source);


}
if($type==".png")
{
$orginal=imagecreatefrompng($source);


}
if($type==".gif")
{
$orginal=imagecreatefromgif($source);


}

$thumb=imagecreatetruecolor($thumbWidth,$thumbHeig ht);
$dims=getimagesize($source);
imagecopyresampled($thumb,$orginal,0,0,0,0,$thumbW idth,$thumbHeight,$dims[0],$dims[1]);
imagejpeg($thumb, $des);

}



تابع بالایی رو در تابع پائینی صدا میکنم

یعنی این






function addphoto()
{
$error=array();
if(isset($_POST['submit']))
{
if(!empty($_POST['title']))
{
$title=$_POST['title'];
}
else
{
$error[]="لطفا نام را وارد کنید";
}
if(!empty($_POST['album']))
{
$pid=$_POST['album'];
}
else
{
$error[]="لطفا نام آلبوم را انتخاب کنید";
}
if(!empty($_POST['subcat']))
{
$subcat=$_POST['subcat'];
}
else
{
$error[]="لطفا نام آلبوم2 را انتخاب کنید";
}
if(isset($_FILES['photo']))
{

if(!empty($_FILES['photo']['name']))
{
$size=$_FILES['photo']['size'];

if($size>=50000000)
{
$error[]="حجم فایل شما بیش از 2مگابایت است.";
}
else
{
$type=$_FILES['photo']['type'];
$name=$_FILES['photo']['name'];
$tmp=$_FILES['photo']['tmp_name'];
$valid=array("image/jpeg","image/png","image/gif");
$ext;
if(in_array($type,$valid))
{
if($type==$valid[0])
{
$ext=".jpg";
}
elseif($type==$valid[1])
{
$ext=".png";
}
elseif($type==$valid[2])
{
$ext=".gif";
}
$picname=md5(rand(000000,999999));
$picname2=$picname.$ext;
move_uploaded_file($tmp,"../upldfiles/galleryimg/".$picname2);
$paththumb="../upldfiles/galleryimg/";
$paththumb2="../upldfiles/galleryimg/thumb/";
$this->thumbnail($paththumb,$picname2,$ext,$paththumb2);


}
else
{
$error[]="فایل شما برای آپلود مجاز نیست";
}
}
}
}
else
{
echo mysql_error();
}
if(!empty($_POST['desc']))
{
$desc=$_POST['desc'];
}
else
{
$error[]="لطفا توضیحات را وارد کنید";
}
if(empty($error))
{

}
else
{
foreach($error as $val)
{
echo $val."<br /><br />";
}
}

}

}//end of function









و از جائی که میخوام تصویر دوم ذخیره بشه ایراد میگیره

MMSHFE
دوشنبه 15 مهر 1392, 00:31 صبح
متن خطا چی بوده؟ روی هاست تست میکنید یا لوکال؟ اگه هاست هست، Permission نوشتن توی پوشه ذخیره سازی پیشنمایشها رو تنظیم کردین یا نه؟ لطفاً بیشتر توضیح بدین.

css-man
دوشنبه 15 مهر 1392, 00:57 صبح
روی لوکال دارم تست میکنم اینم متن ارور



Warning: imagejpeg(../upldfiles/galleryimg/thumb/): failed to open stream: No such file or directory in C:\xampp\htdocs\adminthem\classes\admin.php on line 247

css-man
دوشنبه 15 مهر 1392, 00:59 صبح
تابع دوم که نوشتم عکس رو آپلود میکنه بدونه هیچ مشکلی
حالا وقتی تابع thumbnail رو صدا میکنم که از عکس آپلود شده یه نسخه کوچیک هم بسازه نمی سازه و اروره بالا رو می ده

MMSHFE
دوشنبه 15 مهر 1392, 01:29 صبح
خوب ببینید چنین مسیری وجود داره یا نه. بجای اینکه مسیر رو نسبی بدین، مطلق وارد کنید ببینید درست میشه یا نه. یا مثلاً اینطوری مسیر رو وارد کنید:

// wrong: ../upldfiles/galleryimg/thumb/
str_replace('\\', '/', dirname(dirname(__FILE__))) . '/upldfiles/galleryimg/thumb/

css-man
دوشنبه 15 مهر 1392, 21:46 عصر
والا مسیر رو کامل و از فولدر روت وارد کردم ولی باز هم این پیغام رو میده


Warning: imagejpeg(adminthem/upldfiles/galleryimg/thumb/): failed to open stream: No such file or directory in

shahriyar3
دوشنبه 15 مهر 1392, 22:18 عصر
شما باید آدرس خود عکس و بدین نه آدرس پوشه که توش آپلود شده
این باشه
adminthem/upldfiles/galleryimg/thumb/
جلوش اسم عکس هم باشه مثلا
adminthem/upldfiles/galleryimg/thumb/image.jpg
خط 65 و اصلاح کنید فکر کنم درست میشه


$paththumb="../upldfiles/galleryimg/";

css-man
دوشنبه 15 مهر 1392, 22:50 عصر
می شه بفرمائید اصلا این تابعی که نوشتم درسته یا نه
ایرادی به لحاظ فنینداره؟

css-man
دوشنبه 15 مهر 1392, 23:15 عصر
تو اینجا من هم اسم عکس هم مسیر ذخیره شده فعلیش رو میدم به تابع



$this->thumbnail($paththumb,$picname2,$ext,$paththumb2 );



این جائیه که میخوام عکس کوچیکم توش ذخیره بشه


$paththumb2="../upldfiles/galleryimg/thumb/";

برای همین اسم ندادم
چون فقط مسیر ذخیره شدنشه

shahriyar3
سه شنبه 16 مهر 1392, 00:35 صبح
منظورم آدرس به اضافه اسم عکس بود . اینجا شما فقط اسم عکس و میدین


../upldfiles/galleryimg/".$picname2

بعد هم مسیر مطلق بدین بجای نسبی

css-man
سه شنبه 16 مهر 1392, 22:21 عصر
مسیر مطلق دادم نشد

اسم و آدرس رو هم که به تابع میدم اما باز هم مشکل داره