سؤال

أحاول معرفة طريقة لتخزين الملفات في قاعدة البيانات الخاصة بنا.أنا أعلم أنه أوصى إلى تخزين الملفات على نظام الملفات بدلا من قاعدة البيانات ، لكن العمل انا اعمل على أن غاية يفضلون استخدام قاعدة البيانات لتخزين هذه الصور (ملفات).

هناك أيضا بعض القيود.أنا لست المشرف المستخدم ، يجب أن تجعل الإجراءات المخزنة لتنفيذ جميع الأوامر.هذا لم يكن من صعوبة كبيرة حتى الآن ، ولكن لا حياة لي إنشاء طريقة لتخزين الملف (الصورة) في قاعدة البيانات.

عند محاولة استخدام معظم الأوامر ، أحصل على رسالة خطأ تقول "ليس لديك إذن لاستخدام التحميل بالجملة البيان". معظم المرافق يبدو مثل طريقة سهلة لتحميل الملفات إلى قاعدة البيانات ، ولكن من دون أذونات علي الرقم العمل-a-جولة.

قررت استخدام نموذج HTML مع ملف التحميل نوع الإدخال و التعامل مع PHP.PHP المكالمات الإجراء المخزن و يمر في محتويات الملف.المشكلة الآن أن يقول أن أقصى طول من المعلمة يمكن أن يكون إلا 128 حرفا.

الآن أنا عالقة تماما.لا يكون لديك أذونات لاستخدام معظم الأوامر و يبدو أن أقصى طول من المعلمة التي لا يمكن أن تمر إلى SP 128 حرفا.

كنت أتوقع أن واجهت مشاكل بسبب الثنائية أحرف ascii لا تخلط معا جيدا, ولكن أنا في طريق مسدود...

شكرا

هل كانت مفيدة؟

المحلول

هنا هو مثال وجدت في ديفيد هايدن بلوق.

إنها c# على سبيل المثال ، ولكن يجب أن تكون خطوات مماثلة في PHP:

  1. تحويل الملف الذي تم تحميله إلى صفيف بايت
  2. تنفيذ tsql ضمن ديناميكية على الملقم

نصائح أخرى

وبشكل عام، فإننا لا تمر البيانات الثنائية في SQL. نحن تحميل الملف إلى الخادم، ثم تحميل الصورة من خادم إلى قاعدة البيانات.

وتحميل الصور إلى قاعدة البيانات من ملف:

UPDATE images
SET image = LOAD_FILE('images/myimage.jpg')
WHERE image_id = 1234

والحصول على الجزء الخلفي صورة إلى ملف:

SELECT image
INTO DUMPFILE 'images/myimage.jpg'
FROM images
WHERE image_id = 1234
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top