الوصول إلى نظام الملفات باستخدام SQL

اكتشفتُ مؤخرًا طريقةً رائعةً للوصول إلى نظام الملفات واسترجاع معلومات قيّمة، مثل وجود الملفات والمجلدات أو محتوياتها. يُمكن أن تكون هذه الطريقة مفيدةً جدًا كبديلٍ لدالة PHP ` file_exists` ، حيث يُمكن استخدام معلومات وجود الملفات في الاستعلام لإجراء عمليات فرز وتجميع إضافية.


بشرط أن يمتلك مستخدم قاعدة البيانات المرتبط صلاحيات الوصول إلى الملفات ، يمكن استخدام الأمر.

SELECT LOAD_FILE(*PFAD ZUR DATEI*)

أثناء الاستعلام ، لا تتحقق فقط من وجود الملف ، ولكن أيضًا اقرأ محتواه.

في أنظمة Windows ، تجدر الإشارة إلى أنه يجب وضع علامة على الخطوط المائلة العكسية في مسار الملف وفقًا لذلك (مثال: C: \\ Windows \\ System32 \\ drivers \\ etc \\ hosts). لا ينبغي أيضًا تجاهل جانب الأمان تمامًا ، لأنه عند منح امتياز FILE ، فإن الوصول إلى قاعدة البيانات يعني تلقائيًا الوصول إلى بقية نظام الملفات.

لضمان عدم إرجاع القيم الفارغة فقط ، يجب التأكد من أن المستخدم الذي يقوم بتشغيل MySQL لديه حقوق القراءة.

للوصول إلى الملفات الكبيرة ، يجب زيادة الخاصية العامة "max_allowed_packet" ، والتي تم تعيينها على 1 ميغابايت.

mysql -u... -p...
set global max_allowed_packet = 1024 * 1024 * 512;
exit;

يمكنك الآن (بعد إعادة تشغيل الخادم) الوصول إلى الملفات التي يمكن أن يصل حجمها إلى 512 ميجا بايت.

عودة