اذهب إلى المحتوى

السؤال

Recommended Posts

  • 0
نشر

يمكنك استخدام حزمة multer لرفع الملفات (منها الفيديو)

حيث عليك تثبيت الحزمة

npm install --save multer

وتضمينها
const multer = require('multer');

ثم تعريف الدوال التي تقوم بالرفع.

أولاً تعريف مسار رفع الفيديو:

router.post('/uploadVideo', videoUpload.single('video'), (req, res) => {

	// نحفظ الملف

}, (error, req, res, next) => {
	// خطأ
    res.status(400).send({ error: error.message })
})

ثانياً تعريف دالة المتحكم لمعالجة الملف middleware

const videoUpload = multer({
     storage: videoStorage,
     limits: {
     fileSize: 10000000 // 10000000 Bytes = 10 MB
     },
     fileFilter(req, file, cb) {
       // تحديد أنواع الملفات الممكنة mp4 and mkv format
       if (!file.originalname.match(/\.(mp4|MPEG-4|mkv)$/)) { 
          return cb(new Error('الملف المرفق ليس ملف فيديو أو ليس مدعوم من المخدم'))
       }
       cb(undefined, true)
    }
})

ثالثاً حفظ الملف على المخدم ضمن نظام الملفات

const videoStorage = multer.diskStorage({
     destination: 'videos',                // مسار مجلد حفظ الفيديو
     filename: (req, file, cb) => {        // اسم الملف
         
		cb(null, file.fieldname + '_' + Date.now()  + path.extname(file.originalname))
     }
});

لاحظ أن ملف الفيديو يتم حفظه على القرص، و نضيف في نموذج قاعدة البيانات حقل سلسلة نصية يحفظ مسار الفيديو فقط و نقوم بالربط اللازم بينهم.

أضف منطق حفظ الرابط في قاعدة بيانات mongo

ضمن front end نستخدم multipart/form-data مع الطريقة POST , ونعطي اسم للحقل.

<form method="post" action="/uploadVideo" enctype="multipart/form-data">
    <input type="file" name="videoFile"><br>
    <input type="submit" value="Submit">
</form>

يمكنك الاعتماد على الأفكار من رفع صورة من السؤال:

 

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...