اذهب إلى المحتوى

السؤال

نشر (معدل)

سلام عليكم

انا برفع صورة في مجلد و احط اسمها في الداتابيز 

لما المستخدم يحب يرفع صورة تانية ( هايتغير اسمها في الداتابيز عادي جدا - بس الاولانية هاتفضل موجودة في مجلد الصور و ده مع الوقت هايسبب استهلاك كبير للمساحة )

حبيت اعمل شرط انه و هو بيرفع الصورة يبص بصة عالجدول ، لو لقاه مشغول ( فيه صورة مرفوعة قبل كده ) يعمل حذف للصورة الموجودة في مجلد الصور و اسمها هو القيمة اللي بالداتابيز و بعدين يرفع الصورة الجديدة

بس للاسف هو بيرفع الصورة الجديدة بدون ما يحذف حاجة ، غلطي فين افادكم الله

 

$order = $_POST['order'];  // تعريف الاوردر

if (isset($order['img_pack']) AND !empty($order['img_pack'])){ // في حال وجدت قيمة في حقل img_pack
    $source = 'assets/packingmethod/' . $order['img_pack']; // تعريف المصدر
unlink($source); // احذف الموجود مسبقا
}

        $res = upload_image('packingmethod',$_FILES['image']);

        if (!empty($res)){
            if ($res['code'] == 1){
                $image = $res['name'];

                $result0 = $conn->query("UPDATE orders SET img_pack='$image' WHERE id='$order'");

            }
        }

 

تم التعديل في بواسطة Wael Aljamal
توضيح السؤال

Recommended Posts

  • 1
نشر

ربما المشكلة في مسار الصور الممررة للدالة unlink أي المسار يتم استدعائه من سياق مختلف..

وربما ليس لديك صلاحية لحذف الملف..

لعمل تغيير الصلاحية نستخدم chown

$path = '.path/image.png';

chown($path, 666); // تعديل الصلاحية

if (unlink($path)) {
    echo 'success';
} else {
    echo 'fail';
}

وإن ظهر خطأ مثل 

Warning: unlink() expects parameter 1 to be a valid path, resource Resource id 

#3 cannot be deleted due to an error

حاول تجهيز مؤشر على الملف كالتالي:

$file_pointer = fopen('abcd.txt', 'w+');

if (!unlink($file_pointer)) {
    echo ("$file_pointer خطأ لم يتم الحذف");
}
else {
    echo ("$file_pointer تم الحذف);
}

كما يمكنك الاستفادة من سؤالين لنفس المشكلة:

يمكنك التأكد من أن الملف موجود قبل الحذف لمعرفة هل المسار سليم أم لا:

$Path = './path/image.png';

if (file_exists($Path)){
    if (unlink($Path)) {   
        echo "تم الحذف";
    } else {
        echo "فشل حذف";    
    }   
} else {
    echo "مسار خطأ";
}

 

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...