في القضبان, يمكنني معرفة ما اذا كان ملف مضغوط تحميلها تالف أو غير صالح?

StackOverflow https://stackoverflow.com//questions/22079749

سؤال

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

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

المحلول

هنا هو الحل الساذج الذي يحاول فتح أرشيف مضغوط ، والعودة true إذا كان يعمل و false إذا حدث خطأ:

require 'zip'

def valid_zip?(file)
  zip = Zip::File.open(file)
  true
rescue StandardError
  false
ensure
  zip.close if zip
end

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

نصائح أخرى

طريقة أخرى سهلة هي مجرد التحقق من هذا الشرط، إذا تم تحميل الملف.

giveacodicetagpre.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top