diff --git a/app/controllers/zipdown_controller.rb b/app/controllers/zipdown_controller.rb index 8b93d7443..e617829b6 100644 --- a/app/controllers/zipdown_controller.rb +++ b/app/controllers/zipdown_controller.rb @@ -33,8 +33,6 @@ class ZipdownController < ApplicationController rescue Exception => e render file: 'public/no_file_found.html' , :layout => 'course_base' - #logger.error "[ZipDown] ===> #{e}" - #@error = e end #下载某一学生的作业的所有文件 @@ -69,7 +67,6 @@ class ZipdownController < ApplicationController user_zip_paths = homeattaches.map do |homeattach| zip_homework_by_user homeattach end - #zipping "#{Time.now.to_i}_#{bid.name}.zip", user_zip_paths, OUTPUT_FOLDER user_zip_paths end @@ -87,32 +84,17 @@ class ZipdownController < ApplicationController #has_file = true unless has_file end end - #unless has_file - # render file: 'public/no_file_fond.html' , :layout => 'course_base' - #end zipping "#{Time.now.to_i}_#{bid.name}.zip", user_zip_paths, OUTPUT_FOLDER - - #@paths = homeworks_attach_path - #zipfile = ziping homeworks_attach_path - #send_file zipfile, :filename => bid.name, - # :type => detect_content_type(zipfile) - #rescue Errno::ENOENT => e - # logger.error "[Errno::ENOENT] ===> #{e}" - # @error = e end def zip_homework_by_user(homeattach) - #if homeattach.attachments.count > 0 - homeworks_attach_path = [] - # 需要将所有homework.attachments遍历加入zip - # 并且返回zip路径 - user_attaches_paths = homeattach.attachments.each do |attach| - #length = attach.storage_path.length - homeworks_attach_path << attach.diskfile#.to_s.slice((length+1)..-1) - end - zipping("#{homework.user.user_extensions.student_id}_#{homeattach.user.name.to_s}.zip", homeworks_attach_path, OUTPUT_FOLDER, true) - #user_attaches_paths - #end + homeworks_attach_path = [] + # 需要将所有homework.attachments遍历加入zip + # 并且返回zip路径 + user_attaches_paths = homeattach.attachments.each do |attach| + homeworks_attach_path << attach.diskfile#.to_s.slice((length+1)..-1) + end + zipping("#{homeattach.user.name.to_s}_#{Time.now.to_i}.zip", homeworks_attach_path, OUTPUT_FOLDER, true) end @@ -121,19 +103,19 @@ class ZipdownController < ApplicationController ic = Iconv.new('GBK//IGNORE', 'UTF-8//IGNORE') input_filename = files_paths - rename_zipfile = zip_name_refer ||= "archive_#{Time.now.to_i}.zip" + rename_zipfile = zip_name_refer ||= "archive_#{Time.now.to_i}.zip" zipfile_name = "#{output_path}/#{rename_zipfile}" Dir.mkdir(File.dirname(zipfile_name)) unless File.exist?(File.dirname(zipfile_name)) Zip::File.open(zipfile_name, Zip::File::CREATE) do |zipfile| - input_filename.each do |filename| - rename_file = Time.now.to_i.to_s+ ic.iconv( (File.basename(filename)) ).to_s - rename_file = ic.iconv( filename_to_real( File.basename(filename))).to_s if is_attachment + input_filename.each do |filename| + rename_file = Time.now.to_i.to_s+ ic.iconv( (File.basename(filename)) ).to_s + rename_file = ic.iconv( filename_to_real( File.basename(filename))).to_s if is_attachment - zipfile.add(rename_file, filename) - end - zipfile.get_output_stream('ReadMe') do |os| + zipfile.add(rename_file, filename) + end + zipfile.get_output_stream('ReadMe') do |os| os.write 'Homeworks' end end @@ -142,28 +124,6 @@ class ZipdownController < ApplicationController logger.error "[zipdown#zipping] ===> #{e}" @error = e end - - #def ziping files_path - # ic = Iconv.new('GBK//IGNORE', 'UTF-8//IGNORE') - # folder = SaveFolder - # input_filename = files_path - # zipfile_name = "#{OutputFolder}/archive_#{Time.now.to_i}.zip" - # - # Dir.mkdir(File.dirname(zipfile_name)) unless File.exist?(File.dirname(zipfile_name)) - # Zip::File.open(zipfile_name, Zip::File::CREATE) do |zipfile| - # input_filename.each do |filename| - # zipfile.add(ic.iconv(filename_to_real(File.basename(filename))), folder + '/' + filename) - # end - # zipfile.get_output_stream("ReadMe") { |os| - # os.write "Homeworks" - # } - # end - # zipfile_name - #rescue Errno => e - # logger.error "[zipdown#zipping] ===> #{e}" - # @error = e - #end - def detect_content_type(name) content_type = Redmine::MimeType.of(name) content_type.to_s @@ -173,5 +133,4 @@ class ZipdownController < ApplicationController attach = Attachment.find_by_disk_filename(name) attach.filename end - end