Ruby zip:zipfileに圧縮して複数のファイルをダウンロード
Ruby zip:zipfileに圧縮して複数のファイルをダウンロードrubyzipは、複数の画像または複数のファイルをzipfileとして作成するgemである. 参考:https://github.com/rubyzip/rubyzip 1.rubyzip gemfileのインストール
ファイルの完全なコードを圧縮します.逆も然り.(例えば、https://github.com/rubyzip/rubyzip/blob/9d891f7353e66052283562d3e252fe380bb4b199/samples/example_recursive.rb) 上記の例はrubyzip gemリンクでより詳細に説明した.
gem 'rubyzip', '>= 1.0.0'
gem 'zip-zip'
2.zipfile変換コードのページを作成するにはrubygemsとzipが必要です.require 'rubygems'
require 'zip'
3.圧縮するファイルを含むフォルダとzipフォルダを作成します.このフォルダはファイルをパッケージ化できます.
# 압축할 파일들이 있는 폴더 (예시)
folder = "#{Rails.root}/public/downloads"
input_filenames = ['image.jpg', 'description.txt', 'stats.csv']
#위 파일들을 묶어줄 zip 폴더를 만들어줌
zipfile_name = "#{Rails.root}/public/archive.zip"
4.上に作成したzipfile nameフォルダに圧縮するファイルを入れます.
#Zip::File.open(zip폴더이름, Zip::File::CREATE) 형식으로 zipfile을 만들어서, 그 안에 원하는 파일들 넣어줌
Zip::File.open(zipfile_name, Zip::File::CREATE) do |zipfile|
input_filenames.each do |filename|
# zipfile.add(파일이름, 파일 원본 주소)
zipfile.add(filename, File.join(folder, filename))
end
end
5.(追加)上で作成したzipfileをダウンロードする場合はsend fileを使用します.#Zip::File.open.. 블록 밑에 작성
#send_file('zip file 주소', type, filename)
send_file(File.join("#{Rails.root}/public/", 'archive.zip'), :type => 'application/zip', :filename => "#{Time.now.to_date}.zip")
完全なコードファイルの完全なコードを圧縮します.
require 'rubygems'
require 'zip'
# 압축할 파일들이 있는 폴더 (예시)
folder = "#{Rails.root}/public/downloads"
input_filenames = ['image.jpg', 'description.txt', 'stats.csv']
#위 파일들을 묶어줄 zip 폴더를 만들어줌
zipfile_name = "#{Rails.root}/public/archive.zip"
#Zip::File.open(zip폴더이름, Zip::File::CREATE) 형식으로 zipfile을 만들어서, 그 안에 원하는 파일들 넣어줌
Zip::File.open(zipfile_name, Zip::File::CREATE) do |zipfile|
input_filenames.each do |filename|
# zipfile.add(파일이름, 파일 원본 주소)
zipfile.add(filename, File.join(folder, filename))
end
end
Reference
この問題について(Ruby zip:zipfileに圧縮して複数のファイルをダウンロード), 我々は、より多くの情報をここで見つけました https://velog.io/@khy226/Rubyzip-zipfile로-압축해서-다중-파일-다운로드-받기テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol