سلام
متغیر ریسورس، ارجاع به یک منبع خارجی است مانند زمانی که قصد دارید اطلاعاتی را از دیتابیس بخوانید php مستقیم به دیتای درون دیتابیس دسترسی ندارد بلکه با منبع خارجی (مثلا دیتابیس Mysql) ارتباط برقرار می کند و درخواست خود را ارسال می کند. یا حتی زمانی که قصد دارید محتوای فایلی را بخوانید خروجی دستور fopen از نوع ریسورس می باشد. در اینجا نیز دستور imagecreatefromjpeg از کتابخانه GD استفاده می کند که یک منبع بیرونی است.
اینکه چرا برای برخی تصاویر خطای فرمت میدهد باید دیباگ کنید. خطای فرمت مربوط به شرطهای درج شده در خط ۳۴ و ۵۴ می باشد بنابراین شرط ها را بصورت مجزا با استفاده از دستور var_dump نمایش دهید تا مشخص شود دقیقا مشکل کجاست. مثلا برای شرط خط ۳۴ کافیست این دستورات را به کد خود اضافه کنید و بعد با تصویری که آپلود نمیشود تست کنید:
var_dump( array(
$file['tmp_name'],
"getimagesize:",
getimagesize($file['tmp_name']) ,
"pic_type:",
$result['pic_type'],
!in_array($result['pic_type'], array('png','gif','bmp','jpg','jpeg')) ,
"mimetype:",
$mimetype,
!in_array($mimetype, array('image/png','image/gif','image/bmp','image/jpeg')))
);