سؤال

أريد استخراج الملفات داخل ملف مضغوط قمت بتحميله إلى تطبيق القضبان الخاص بي. سيتم تخزين الملفات الموجودة داخل ملف ZIP في قاعدة البيانات.

أريد فتح ملف ZIP في الإجراء الخاص بي، دون الحاجة أولا إلى حفظ الملف إلى مجلد - أريد فتح دفق بيانات متعددة الأجزاء / النموذج مع Rubyzip.

يبدو أن Rubyzip's Zipfile.Open يأخذ فقط اسم الملف - وليس دفق IO.

ما الذي أحتاج إلى تغييره داخل Rubyzip، للسماح لي بفتح ملف ZIP كدفق، مثل هذا:

Zip::ZipFile.open(params["zip_file"]) do |zip_file|
 ...
end

شكرا. Joerg.

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

المحلول

استخدام

Zip::ZipFile.open(params["zip_file"].path) do |zip_file|
 ...
end

يجب أن تعمل.

نصائح أخرى

سأقدم لك بعض النصائح التي لم تطلبها.

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

  • بدء استخراج وظيفة خلفية غير متزامنة من داخل عملك.
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top