لوحة المتصدرين
المحتوى الأكثر حصولًا على سمعة جيدة
المحتوى الأعلى تقييمًا في 11/07/21 في كل الموقع
-
ليس لدي القدره على دفع المال للإشتراك في إحدى الدورات هل يوجد شيء لتعلم البرمجه بدون مال بشكل مجاني1 نقطة
-
السلام عليكم الرجاء الافده عند تنفيذ المشروع بمحاكي الاندرويد يعطيني هذا الخطا msb6006:"java.exe" exit with code 3 بحثت بجوجل ما شفت حل الرجاء الافاده حول هذا الموضوع وشكرا1 نقطة
-
1 نقطة
-
السلام عليكم، لديّ model من اجل انشاء حساب جديد أريد ان اضيف معه صورة لحساب المستخدم ؟ كيف افعل ذلك و شكرا1 نقطة
-
لدعم استعمال الصور في مشروع يوجد عدة خطوات للقيام بها، هذا الموضوع متغير حسب نوع مدير قواعد البيانات ولغات البرمجية المستخدمة .. يمكن الاعتماد على الأفكار التالية: لا يتم تخزين الصور في قاعدة البيانات نضع في قاعدة البيانات اسم الصورة فقط ليكون حجم قاعدة البيانات أقل وبالتالي أخف عبئ على مدير قواعد البيانات يتم رفع ملف الصورة بشكل منفصل كملف يتم تمريره على المخدم نربط بين ملف الصورة وقاعدة البيانات عن طريق إما مسار الصورة أو اسمها يتم تخزين الصورة على المخدم كملف ضمن نظام إداة الملفات File Sytem مثلما ترى الصور ضمن مجلدات لديك.. إن كنت تستخدم مكتبة تعتمد أسلوب/هيكلية النماذج نضيف خاصية الصورة كسلسلة نصية لاحظ حقل avatar في بنية وثيقة المستخدم const ModelSchema = new mongoose.Schema({ name: { type: String, required: true, maxlength: 20 }, username: { type: String, required: true, unique: true, maxlength: 20 }, password: { type: String, required: true }, about: { type: String, maxlength: 100 }, avatar: String, }); ثم يصبح له حقل في قاعدة البيانات، وباقي الأمور هي عملية رفع الصورة، ممكن نستخدم مكتبة multer في قسم back end const multer = require('multer'); /** * Handel multipart/form-data. الوصول للتخزين */ const storage = multer.diskStorage({ destination: 'public/uploads/', filename: function (req, file, cb) { cb(null, Date.now() + path.extname(file.originalname)) } }); /** * User profile middleware. رفع الصورة */ const upload = multer({ limits: { fileSize: 1024 * 1024 }, storage: storage , fileFilter: (req, file, cb) => { let fileTypes = /jpeg|jpg|png/; let mimeType = fileTypes.test(file.mimetype); let extname = fileTypes.test(path.extname(file.originalname).toLowerCase()); if (mimeType && extname) return cb(null, true); cb(new Error('غبر مسموح رفع هذا الملف')); }, }); أما في Front end نستخدم form data + axios يحدد المستخدم رابط ملف الصورة نضيف مسار الصورة لحالة التطبيق يتم تقسيم الملف لأجزاء صغيرة وإرفاقه مع الطلبية onImageChange = e => { if (e.target.files && e.target.files[0]) { this.setState({ image: URL.createObjectURL(e.target.files[0]), avatar: e.target.files[0] }); } }; /** * Change form handler * @param e */ onChange = e => this.setState({[e.target.name]: e.target.value, error: null}); /** * Form submit handler. * @param e */ onSubmit = e => { e.preventDefault(); const data = new FormData(); data.append('name', this.state.name); data.append('about', this.state.about); if (this.state.avatar) data.append('avatar', this.state.avatar, this.state.avatar.name); axios.post('/api/account', data) .then(this.props.toggle) .catch(err => this.setState({ error: err.response.data.message })); }; يمكنك الاستفادة من السؤال: أي بيانات غير نصية نخزنها خارج قاعدة البيانات. يوجد أكثر من طريقة برفع الملف مثل multer وغيرها من المكتبات1 نقطة
-
1 نقطة
-
تقوم شركة حسوب بطرح المشاريع خاصتها للمستقلين على موقع مستقل. تم شرح آلية المشاركة في الأكاديمية لكتابة المقالات من خلال صفحة: اكتب معنا، حيث يتم التوظيف على موقع مستقل. يوجد أيضاً موقع بعيد للتوظيف عن بُعد.1 نقطة
-
ما هو إصدار جافا الذي تستعملينه؟ يمكنك تنفيذ الأمر التالي: java -version مثال: C:\Users\TEC-GATE>java -version java version "1.8.0_281" Java(TM) SE Runtime Environment (build 1.8.0_281-b09) Java HotSpot(TM) 64-Bit Server VM (build 25.281-b09, mixed mode) والأمر javac -version javac 1.8.0_281 لدي الإصدار 1.8 مالذي يظهر لديك1 نقطة
-
كيف أتمكن من تحويل الكود التالي للغة بايثون for (int i=1; i<=10; i+2) cout<< i;1 نقطة
-
لدينا تعليمتين برمجيتين هما الحلقة و الطباعة for x in range(a, b, c): print(x) حيث أن range تأخذ الوسطاء بالترتيب: a بداية المجال b نهاية المجال c الخطوة (القفزة) step حالات خاصة: في حال تمرير a فقط، سيتم العد من 0 حتى a-1 أي مثلا range 6 سيعطي 0,1,2,3,4,5 في حال تمرير a,b ستكون قيمة الخطوة الافتراضية 11 نقطة
-
سلام عليكم انا برفع صورة في مجلد و احط اسمها في الداتابيز لما المستخدم يحب يرفع صورة تانية ( هايتغير اسمها في الداتابيز عادي جدا - بس الاولانية هاتفضل موجودة في مجلد الصور و ده مع الوقت هايسبب استهلاك كبير للمساحة ) حبيت اعمل شرط انه و هو بيرفع الصورة يبص بصة عالجدول ، لو لقاه مشغول ( فيه صورة مرفوعة قبل كده ) يعمل حذف للصورة الموجودة في مجلد الصور و اسمها هو القيمة اللي بالداتابيز و بعدين يرفع الصورة الجديدة بس للاسف هو بيرفع الصورة الجديدة بدون ما يحذف حاجة ، غلطي فين افادكم الله $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'"); } }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 "مسار خطأ"; }1 نقطة
-
الjwt (json web token) هي طريقة لتخزين البيانات بشكلٍ أمن حيث أنها تقوم بإستخدام البصمة الرقمية(digital signature) وهي طريقة لضمان عدم التﻻعب في محتويات الtoken مما يضمن للخادم أن الtoken ليست مزيفة وأنها صالحة للإستخدام الطريقة المتعارفة عليها في التعامل في مثل هذا السيناريو الذي وضعتها تتم كالتالي أن يقوم المُستخدم بعد تسجيل الدخول بإستﻻم token من الخادم ويقوم المُستخدم بتخزينه في كل مرة يُحاول المُستخدم إرسال الtoken يقوم الخادم بالتأكد من صﻻحيته ومن عدم التﻻعب فيه ﻻ يمكن لأحد إنشاء منشور إإﻻ عند تضمين الtoken في الheaders الخاصة بالhttp requests عند إنشاء المنشور يقوم الخادم بمعرفة مُعرف(id) صاحب المنشور عن طريق الtoken ومن ثم يقوم بتخزينه في قاعدة البيانات مع المنشور عند محاولة تعديل المنشور يقوم الخادم بالتأكد من وجود الtoken header إن لم يجده يُرسل رسالة خطأ للمُستخدم, إن وجده يتأكد إن المُعرف الموجود في الtoken هو ذاته الموجود في قاعدة البيانات للمنشور المُراد تعديله أو حذفه, إن وجد أنهم ليسوا نفس المُعرف يقوم بإرسال رسالة خطأ ويمكن البدأ في إستخدامها عبر أولا تثبيت الباكدج jsonwebtoken من npm npm install jsonwebtoken ونقوم بتشفير البيانات بالشكل التالي var privateKey = "secret"; var token = jwt.sign(userObj, privateKey); حيث نستبدل userObj بأوبجكت يُمثل بيانات المستخدم المُراد تخزينها ونستبدل الprivatekey بكلمة خاصة بك لصنع البصمة الرقمية ومن أجل التأكد من صحة الtoken عند إستقبالها من المستخدم jwt.verify(token, 'secret', function(err, decoded) { console.log("succeed"); });1 نقطة
-
السلام عليكم نسيت باسورد حسابي على الفيس بوك كنت كل مرة بضغط نسيت كلمة السر ويجلى رسالة على موبايلي، ولكن هذه المرة لم أجد خيار الرسالة على الموبايل، فقط على الياهو بس والياهو مش راضى يفتح يظهر لى رسالة نأسف، لا نتعرف على عنوان البريد الإلكتروني أو رقم الهاتف1 نقطة