Tôi đang tải tệp lên máy chủ trong Ruby on RailsLàm thế nào để giải nén một tập tin trong Ruby on Rails?
Thông thường, đó là tệp văn bản và tôi lưu tệp đó vào mô hình dưới dạng trường 'tệp' trong ActiveRecord gửi với các trường khác như tiêu đề gửi .. v.v.
Tuy nhiên, người dùng cũng có thể gửi tệp zip. Trong trường hợp này zipfile nên giải nén và cho mỗi tập tin trong zip một Submission mới nên được tạo ra với các lĩnh vực văn bản tương tự, nhưng tập tin hiện hành.
Tôi làm cách nào để thực hiện việc này?
Tôi đã xem các ví dụ giải nén trên mạng, nhưng hầu hết sử dụng thư mục để giải nén tệp. Tôi không chắc chắn nếu tôi cần rằng như trong phương pháp tạo hiện tại của SubmissionsController, một đối tượng tập tin được nhận và tôi đoán đường dẫn để lưu tập tin được tự động tạo ra khi phương thức lưu thông tin được gọi. Vì vậy, tôi đã nghĩ rằng có lẽ tôi nên giải nén zipfile trong bộ nhớ để có được một mảng các đối tượng tập tin và sau đó tạo một thông tin mới với mỗi đối tượng tập tin nhưng các trường tương tự và sau đó cho phép ActiveRecord tạo đường dẫn tệp cho mỗi khi nó lưu chúng vào cơ sở dữ liệu. Tôi có thể sai ở đây, vì tôi là người mới với Rails và Ruby.
Tôi hiểu, vậy làm cách nào tôi có thể nhận được một mảng đối tượng tệp từ tệp zip? – siamii
@ bizso09, tôi vừa cập nhật để hiển thị cách lặp qua nội dung. Ngoài ra còn có một hướng dẫn đơn giản giải thích nó ở đây: http://www.markhneedham.com/blog/2008/10/02/ruby-unzipping-a-file-using-rubyzip/ –
cảm ơn. Tôi thử nó bây giờ – siamii