محمد المصري12 نشر 4 أكتوبر 2021 أرسل تقرير نشر 4 أكتوبر 2021 سلام عليكم عملت سكربت يحدد فقط قبول الملفات من نوع zip و rar و يرفض اي نوع آخر لكنه يقبل فقط ملفات zip و يرفض تماما استقبال اي ملف rar ما هو الخطأ؟ $(document).ready(function(){ $(".img").change(function(){ var allowedTypes = ['application/x-zip', 'application/zip', 'application/x-zip-compressed','application/force-download','application/x-rar', 'application/rar','application/x-rar-compressed','application/force-download','application/octet-stream']; var file = this.files[0]; var fileType = file.type; if(!allowedTypes.includes(fileType)){ alert('Restricted File Type, Please Select only ZIP or RAR file'); $(".img").val(''); return false; } }); }); 2 اقتباس
1 سامح أشرف نشر 4 أكتوبر 2021 أرسل تقرير نشر 4 أكتوبر 2021 لا تقرأ المتصفحات فعليًا الملف الذي يتم تحديده وإنما يتم تحديد نوع الملف بناءً على امتداده (extension)؛ سيعطي ملف صورة PNG الذي تمت إعادة تسميته إلى .txt "text/plain" وليس "image/png". بالإضافة إلى أنه يمكن الاعتماد على file.type بشكل عام فقط لأنواع الملفات الشائعة مثل الصور ومستندات HTML والصوت والفيديو. أيضًا قد ترجع امتدادات الملفات غير المألوفة (مثل صيغة rar أو الصيغة sss) نص فارغ "". يُنصح المطورون بعدم الاعتماد على هذه الخاصية طريقة وحيدة للتحقق من نوع الملف، ويجب أن يتم التأكد من نوع الملف من خلال الواجهة الخلفية Backend أيضًا، لأنه يمكن التلاعب بكود JavaScript بسهولة في المتصفح. لحل المشكلة مؤقتًا في الواجهة الأمامية Frontend في JavaScript يمكنك ان تتأكد من صيغة الملف zip أو rar وتضيف نص فارغ كـ Mime type على النحو التالي: var allowedTypes = ["", 'application/x-zip', 'application/zip', 'application/x-zip-compressed', 'application/x-rar', 'application/rar','application/x-rar-compressed','application/force-download','application/octet-stream']; بهذه الطريقة سيتم قبول ملف zip وملفات rar أيضًا، مع العلم أنه سيتم قبول أي ملف آخر بصيغة غير معروفة، لذلك يجب التأكد من أن اسم الملف يتنهي بـ .zip أو .rar $(document).ready(function(){ $(".img").change(function(){ var allowedTypes = ["", 'application/x-zip', 'application/zip', 'application/x-zip-compressed','application/force-download','application/x-rar', 'application/rar','application/x-rar-compressed','application/force-download','application/octet-stream']; var file = this.files[0]; // التحقق من الملف من خلال صيغته if (!file.name.endsWith('.zip') && !file.name.endsWith('.rar')){ alert('Restricted File Type, Please Select only ZIP or RAR file'); $(".img").val(''); return false; } }); }); 1 اقتباس
1 Wael Aljamal نشر 4 أكتوبر 2021 أرسل تقرير نشر 4 أكتوبر 2021 مثلما أخبرك المدرب سامح، عليك عمل تحقق من نوع الملف في Back End حاول استخدام أحد مكتبات PHP. يمكنك جلب لاحقة الملف : $_FILE['input_name']['type']; والدالة mime_content_type : <?php echo mime_content_type('php.gif') . "\n"; echo mime_content_type('test.php'); ?> image/gif text/plain مكتبات: mimey mimeDetector 1 اقتباس
0 Wael Aljamal نشر 4 أكتوبر 2021 أرسل تقرير نشر 4 أكتوبر 2021 حاول طباعة المتغير var fileType = file.type; وأخبرنا ما قيمته عند تحديدك لملف rar لديك، شكرا لك 1 اقتباس
0 محمد المصري12 نشر 4 أكتوبر 2021 الكاتب أرسل تقرير نشر 4 أكتوبر 2021 ما طبعش حاجة لما اخترت ملف rar و طبع image/gif لما اخترت ملف gif و طبع application/vnd.openxmlformats-officedocument.wordprocessingml.document لما اخترت ملف word اقتباس
0 Wael Aljamal نشر 4 أكتوبر 2021 أرسل تقرير نشر 4 أكتوبر 2021 بتاريخ 9 دقائق مضت قال محمد المصري5: ما طبعش حاجة لما اخترت ملف rar أحد الحلول كان بإضافة نمط فارغ '' للمصفوفة الخاصة بالتحقق var allowedTypes = [ 'application/x-zip', 'application/zip', 'application/x-zip-compressed', 'application/force-download', 'application/x-rar', 'application/rar', 'application/x-rar-compressed', 'application/force-download', 'application/octet-stream', '' // هنا ] اقتباس
0 محمد المصري12 نشر 5 أكتوبر 2021 الكاتب أرسل تقرير نشر 5 أكتوبر 2021 تمام بارك الله فيكم ، ظبطت الحمد لله اقتباس
السؤال
محمد المصري12
سلام عليكم
عملت سكربت يحدد فقط قبول الملفات من نوع zip و rar و يرفض اي نوع آخر
لكنه يقبل فقط ملفات zip و يرفض تماما استقبال اي ملف rar
ما هو الخطأ؟
6 أجوبة على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.