ما هو الخطا فى هذا الكود (PHP)

midoo

ما هو الخطا فى هذا الكود:

public function image($file, $path = "img/img_".date('Y-m-d-H-i-s').".png"){ 
    file_put_contents($path, $file);
} 

و سؤال أخر

كيف عندما اضغط على رابط (صورة) يقوم بعمل تحميل PHP

يرجى الدخول لحسابك أو تسجيل حساب لتستطيع إضافة تعليق
حساب جديد دخول

التعليقات

قيمة $path لا يجب أن تحوي وصلاً للنصوص ضمن تعريف الدالّة.

يمكن إن أردت أن تعيد صياغة الدالّة لتصبح:

public function image($file, $path = null) {
    if($path == null) {
        $path = "img/img_".date('Y-m-d-H-i-s').".png";
    }
    file_put_contents($path, $file);
}

بهذه الطريقة تحقق مرادك وتتخلص من الخطأ.

شكراً لك اشتغل

ممكن مساعدة اخرى ؟

فى هذا الكود:

public function dl_img($file){ 
    header('Content-Disposition: attachment; filename=img '.date("Y-m-d-H-i-s").'.png'); 
    header('Content-Type: image/png'); 
    echo $file; 
} 

عندما تنزل الصورة يقول انها damaged مع انها لها حجم و فى نفس المشكله فى الكود السابق الكود السابق

هذا كود يعمل لإجبار المتصفح على تحميل الصورة من السيرفر، قمت بإضافته إلى الدّالّة وتعديله حسب ما ترغب:

$file = 'C:\\test.jpg';

header('Cache-Control: public');
header('Content-Description: File Transfer');
header('Content-Disposition: attachment; filename='.basename($file));
header('Content-Type: '.mime_content_type($file));
header('Content-Transfer-Encoding: binary');
header('Content-Length: '.filesize($file));

readfile($file);

يمكن أيضا استخدام خاصية download في HTML5 لإجبار المتصفح على تحميل أي شيء

<a href="image.png" download></a>

اسف لاكن لا تعمل !

مثلا الرابط :

عند التحميل يقول انها فارغة!

جرب ان تستخدام هذة الدالة افضل ستقوم بنقل الملف مهما كان نوعة كما هو

    '$uploads_dir = "/uploads";
    $tmp_name = $_FILES["picture"]["tmp_name"];
    $name = $_FILES["picture"]["name"];
    move_uploaded_file($tmp_name, "$uploads_dir/$name");'

شكراً على ردك

لكن انا اريدها ان تتحمل على الجهاز ليس تنتقل للسيرفر

المشكلة هى عندما تنزل الصورة يقول انها damaged

اذا كنت تقصد ان يتم تنفيذها على جهاز العميل فعليك استخدام جافا سكريبت لان اكواد ال php تنفذ على السيرفير فقط

إن لم يكن ما قصدتة فماذا تقصد بـ "اريدها ان تتحمل على الجهاز ليس تنتقل للسيرفير"

او توضيح ما تريد عملة من الاساس بهذا الكود