ifarshad7 0 ارسال شده در اردیبهشت 99 گزارش بازنشر ارسال شده در اردیبهشت 99 باسلام من یه فایل content.php دارم با فرم زیر : <form action="upload.php"method="post" enctype="multipart/form-data"> <label for="img">عکس را انتخاب کنید</label> <input type="file" id="img" name="img" accept="image/*"> <input type="submit" value="آپلود" name="submit"> </form> داخلش که قصد دارم عکس انتخاب شده ارسال بشه به فایل upload.php و اونجا با فانکشن imagefilter() عکس نگاتیو بشه ! ولی هر دفعه یه مشکل پیش میاد: محتویات upload.php : <?php error_reporting(E_ALL ^ E_NOTICE); $fileDir = $_POST['img']; imagefilter("$fileDir",IMG_FILTER_NEGATE); من خودم فک میکنم با متغییر filedir مشکل داره ! این دفعه آخری که امتحان کردم ارور رو داد : Warning: imagefilter() expects parameter 1 to be resource, string given in C:\wamp64\www\farshad\upload.php on line 8 مشکل از کجاست باید چیکار کنم ؟ نقل قول لینک به ارسال
damoon_zero 172 ارسال شده در اردیبهشت 99 گزارش بازنشر ارسال شده در اردیبهشت 99 در 9 ساعت قبل، ifarshad7 گفته است : باسلام من یه فایل content.php دارم با فرم زیر : <form action="upload.php"method="post" enctype="multipart/form-data"> <label for="img">عکس را انتخاب کنید</label> <input type="file" id="img" name="img" accept="image/*"> <input type="submit" value="آپلود" name="submit"> </form> داخلش که قصد دارم عکس انتخاب شده ارسال بشه به فایل upload.php و اونجا با فانکشن imagefilter() عکس نگاتیو بشه ! ولی هر دفعه یه مشکل پیش میاد: محتویات upload.php : <?php error_reporting(E_ALL ^ E_NOTICE); $fileDir = $_POST['img']; imagefilter("$fileDir",IMG_FILTER_NEGATE); من خودم فک میکنم با متغییر filedir مشکل داره ! این دفعه آخری که امتحان کردم ارور رو داد : Warning: imagefilter() expects parameter 1 to be resource, string given in C:\wamp64\www\farshad\upload.php on line 8 مشکل از کجاست باید چیکار کنم ؟ الان با اين کد فايل شما آپلود و ذخيره ميشه ؟؟؟؟؟ فکر می کنم مشکل اينجاست که فايلی برای ورودی تابع imagefilter وجود نداره ! مقدار 1 بر ميگرده به تابع imagefilter ! بجای اينکه آدرس فايل که بايد رشته باشه برای عکس داده بشه ! اوّل مطمئن بشيد که کد شما فايل عکس رو ذخيره کرده و آدرس فايل ذخيره شده رو به تابع می رسونيد برای اينکه مطمئن بشيد مشکل از عملکرد تابع نيست ، که نيست ميتونيد برای ورودی آدرس يه عکس رو بهش بديد و نتيجه رو مشاهده کنيد برای آپلود شما يک نگاهی به لينک زير بنداز ... https://www.w3schools.com/php/php_file_upload.asp نقل قول لینک به ارسال
ifarshad7 0 ارسال شده در اردیبهشت 99 مالک گزارش بازنشر ارسال شده در اردیبهشت 99 (ویرایش شده) در 2 ساعت قبل، damoon_zero گفته است : الان با اين کد فايل شما آپلود و ذخيره ميشه ؟؟؟؟؟ فکر می کنم مشکل اينجاست که فايلی برای ورودی تابع imagefilter وجود نداره ! مقدار 1 بر ميگرده به تابع imagefilter ! بجای اينکه آدرس فايل که بايد رشته باشه برای عکس داده بشه ! اوّل مطمئن بشيد که کد شما فايل عکس رو ذخيره کرده و آدرس فايل ذخيره شده رو به تابع می رسونيد برای اينکه مطمئن بشيد مشکل از عملکرد تابع نيست ، که نيست ميتونيد برای ورودی آدرس يه عکس رو بهش بديد و نتيجه رو مشاهده کنيد برای آپلود شما يک نگاهی به لينک زير بنداز ... https://www.w3schools.com/php/php_file_upload.asp الان من دقیقا همون کدی رو که داخل W3schools گفته بود رو اوکی کردم و فایل ها توی یه پوشه به اسم uploads/ آپلود میشن و در زمینه آپلود کاملا اوکیه ولی الان به عنوان ورودی $target_file رو که انتخاب می کنم بازم ارور میده . یعنی مثلا پیغام میده که فایل اپلود شد ولی فیلتر رو اعمال نمیکنه و ارور میده <?php $target_dir = "uploads/"; $target_file = $target_dir . basename($_FILES["img"]["name"]); $uploadOk = 1; $imageFileType = strtolower(pathinfo($target_file,PATHINFO_EXTENSION)); if(isset($_POST["submit"])) { $check = getimagesize($_FILES["img"]["tmp_name"]); if($check !== false) { echo "File is an image - " . $check["mime"] . "."; $uploadOk = 1; } else { echo "File is not an image."; $uploadOk = 0; } } // Check if file already exists if (file_exists($target_file)) { echo "Sorry, file already exists."; $uploadOk = 0; } // Check file size if ($_FILES["img"]["size"] > 50000000) { echo "Sorry, your file is too large."; $uploadOk = 0; } // Allow certain file formats if($imageFileType != "jpg" && $imageFileType != "png" && $imageFileType != "jpeg" && $imageFileType != "gif" ) { echo "Sorry, only JPG, JPEG, PNG & GIF files are allowed."; $uploadOk = 0; } // Check if $uploadOk is set to 0 by an error if ($uploadOk == 0) { echo "Sorry, your file was not uploaded."; // if everything is ok, try to upload file } else { if (move_uploaded_file($_FILES["img"]["tmp_name"], $target_file)) { echo "The file ". basename( $_FILES["img"]["name"]). " has been uploaded."; } else { echo "Sorry, there was an error uploading your file."; } } imagefilter("$target_file", IMG_FILTER_NEGATE); این ارور رو میده Warning: imagefilter() expects parameter 1 to be resource, string given in C:\wamp64\www\farshad\upload.php on line 46 الان دقیقا مشکلش چیه ؟ نمیفهمم ! تو php یخورده صفرکیلومترم ویرایش شده اردیبهشت 99 توسط ifarshad7 نقل قول لینک به ارسال
damoon_zero 172 ارسال شده در اردیبهشت 99 گزارش بازنشر ارسال شده در اردیبهشت 99 (ویرایش شده) در 6 ساعت قبل، ifarshad7 گفته است : الان من دقیقا همون کدی رو که داخل W3schools گفته بود رو اوکی کردم و فایل ها توی یه پوشه به اسم uploads/ آپلود میشن و در زمینه آپلود کاملا اوکیه ولی الان به عنوان ورودی $target_file رو که انتخاب می کنم بازم ارور میده . یعنی مثلا پیغام میده که فایل اپلود شد ولی فیلتر رو اعمال نمیکنه و ارور میده <?php $target_dir = "uploads/"; $target_file = $target_dir . basename($_FILES["img"]["name"]); $uploadOk = 1; $imageFileType = strtolower(pathinfo($target_file,PATHINFO_EXTENSION)); if(isset($_POST["submit"])) { $check = getimagesize($_FILES["img"]["tmp_name"]); if($check !== false) { echo "File is an image - " . $check["mime"] . "."; $uploadOk = 1; } else { echo "File is not an image."; $uploadOk = 0; } } // Check if file already exists if (file_exists($target_file)) { echo "Sorry, file already exists."; $uploadOk = 0; } // Check file size if ($_FILES["img"]["size"] > 50000000) { echo "Sorry, your file is too large."; $uploadOk = 0; } // Allow certain file formats if($imageFileType != "jpg" && $imageFileType != "png" && $imageFileType != "jpeg" && $imageFileType != "gif" ) { echo "Sorry, only JPG, JPEG, PNG & GIF files are allowed."; $uploadOk = 0; } // Check if $uploadOk is set to 0 by an error if ($uploadOk == 0) { echo "Sorry, your file was not uploaded."; // if everything is ok, try to upload file } else { if (move_uploaded_file($_FILES["img"]["tmp_name"], $target_file)) { echo "The file ". basename( $_FILES["img"]["name"]). " has been uploaded."; } else { echo "Sorry, there was an error uploading your file."; } } imagefilter("$target_file", IMG_FILTER_NEGATE); این ارور رو میده Warning: imagefilter() expects parameter 1 to be resource, string given in C:\wamp64\www\farshad\upload.php on line 46 الان دقیقا مشکلش چیه ؟ نمیفهمم ! تو php یخورده صفرکیلومترم مشکل چند جاست ! اوّل اينکه طبق راهنمايی که اين تابع داره شما اوّل قبل از اينکه اين تابع رو بکار ببريد بايد از يکی از توابع سازنده عکس تو PHP استفاده کنيد مثل imagecreatetruecolor() يا imagecreatepng() يا imagecreatejpeg() بعدش اينو در نظر بگير که خروجی تابع اعمال فيلتر TRUE يا FALSE هست يعنی فيلتر رو اعمال می کنه ولی نمايش نميده و فقط ميگه که اعمال شد يا نه ! True يعنی اعمال شد False هم ... ! فيلتر رو عکس بطور مستقيم اعمال ميشه ! مثلاً تو کد زير من يه عکس با نام 3.jpg به تابع دادم و تبدليش کردم به نگاتيو و خروجيش عکس 4.jpg که نگاتيو شده : <?php $image = imagecreatefromjpeg('3.jpg'); // Voroodiye Aks Va tabdilesh be aks Ghabl az estefade too tabe ... if($image && negate($image)) { echo 'Image Negative SHod'; imagejpeg($image, '4.jpg', 100); imagedestroy($image); } else { echo 'Failed Shod'; } function negate($image) { if(function_exists('imagefilter')) // check mikone bebine tabe imagefilter vojood dare ya na { return imagefilter($image, IMG_FILTER_NEGATE); // age tabe vojood dasht voroodie akso ke dorost karde bood o bede be tabe ba Filteri ke mikhay ! } return(true); } ویرایش شده اردیبهشت 99 توسط damoon_zero نقل قول لینک به ارسال
damoon_zero 172 ارسال شده در اردیبهشت 99 گزارش بازنشر ارسال شده در اردیبهشت 99 <?php $image = imagecreatefromjpeg('3.jpg'); // Voroodiye Aks Va tabdilesh be aks Ghabl az estefade too tabe ... imagefilter($image, IMG_FILTER_NEGATE); imagejpeg($image, '4.jpg', 100); imagedestroy($image); کوتاه ، مختصر ، مفيد ... نقل قول لینک به ارسال
damoon_zero 172 ارسال شده در اردیبهشت 99 گزارش بازنشر ارسال شده در اردیبهشت 99 اميدوارم جوابتون رو پيدا کرده باشيد نقل قول لینک به ارسال
dorpress 0 ارسال شده در اردیبهشت 99 گزارش بازنشر ارسال شده در اردیبهشت 99 سلام از پیام خطا معلومه که اولین آرگومان تابع imagefilter رو باید از نوع resource بهش بدین. لازمه که اولین آرگومان با یکی از توابع ایجاد image ایجاد شده باشه. متغیر $fileDir که یک فایل عکس هست به درد این تابع نمی خوره و باید resource عکس بهش بدین نه فایل عکس نقل قول لینک به ارسال
dorpress 0 ارسال شده در اردیبهشت 99 گزارش بازنشر ارسال شده در اردیبهشت 99 $target_file = $target_dir . basename($_FILES["img"]["name"]); متغیر $target_file حاوی رشته string است در حالی که باید resource باشه. دوستمون damoon_zero هم به این مسئله اشاره کردن نقل قول لینک به ارسال
پست های پیشنهاد شده
به گفتگو بپیوندید
هم اکنون می توانید مطلب خود را ارسال نمایید و بعداً ثبت نام کنید. اگر حساب کاربری دارید، برای ارسال با حساب کاربری خود اکنون وارد شوید .