Rayden Storm نشر 28 أبريل 2021 أرسل تقرير نشر 28 أبريل 2021 هل هناك طريقة أبسط لتحميل ملف من خادم nodejs غير الطريقة المستعملة في الاسفل app.get('/get_intro', function(req, res){ const file = __dirname + '/video/intro.mp4'; const filename = path.basename(file); const mimetype = mime.lookup(file); res.setHeader('Content-disposition', 'attachment; filename=' + filename); res.setHeader('Content-type', mimetype); const filestream = fs.createReadStream(file); filestream.pipe(res); }); 1 اقتباس
0 عبدالله عبدالرحمن11 نشر 28 أبريل 2021 أرسل تقرير نشر 28 أبريل 2021 (معدل) نعم يمكنك إستخدام Multer قم بإنشاء متغير لإستدعاء multer مع الإعدادات الذي تريدها ثم تقوم بإستدعاء هذا المتغير في المُدخل الثاني وتقوم بإستدعاء single إذا كان الملف واحد var express = require('express') var multer = require('multer') var upload = multer({ dest: 'uploads/' }) // تحدد المكان الذي تريد وضع الملف فيه وتستطيع وضع إعدادات أخرى var app = express() app.post('/profile', upload.single('avatar'), function (req, res, next) {// إستدعاء الدالة في المُدخل الثاني // req.file is the `avatar` file // req.body will hold the text fields, if there were any }) تم التعديل في 28 أبريل 2021 بواسطة عبدالمجيد الجرادي اقتباس
0 Wael Aljamal نشر 28 أبريل 2021 أرسل تقرير نشر 28 أبريل 2021 لاختصار الشيفرة يمكن استعمال download method: app.get('/get_intro', function(req, res) { var file = "/video/intro.mp4"; res.download(file) }); وإذا أردت حفظ الذاكرة بإغلاق الاتصال بعد مدة زمنية يمكن الاستفادة من الشيفرة التالية: حيث أضفنا setTimeout مع عمل قناة اتصال createWriteStream var http = require('http'), fs = require('fs'); var request = http.get("get_intro", function(response) { if (response.statusCode === 200) { var file = fs.createWriteStream("/video/intro.mp4"); response.pipe(file); } // Add timeout. request.setTimeout(12000, function () { request.abort(); }); }); وإن أردت استخدام call back function بعد انتهاء التحميل يمكن الاستعادنة ب: var http = require('http'); var fs = require('fs'); var download = function(url, dest, cb) { var file = fs.createWriteStream(dest); var request = http.get(url, function(response) { response.pipe(file); file.on('finish', function() { file.close(cb); // close() is async, call cb after close completes. }); }).on('error', function(err) { // Handle errors fs.unlink(dest); // Delete the file async. (But we don't check the result) if (cb) cb(err.message); }); }; اقتباس
0 Salah Eddin Beriani2 نشر 28 أبريل 2021 أرسل تقرير نشر 28 أبريل 2021 يمكنك استخدام res.download فهي تختصر كل الشيفرة التي أرفقتها فوق app.get('/get_intro', function(req, res){ const file = __dirname + '/video/intro.mp4'; res.download(file); }); اقتباس
السؤال
Rayden Storm
هل هناك طريقة أبسط لتحميل ملف من خادم nodejs غير الطريقة المستعملة في الاسفل
3 أجوبة على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.