diff --git a/app/controllers/attachments_controller.rb b/app/controllers/attachments_controller.rb index 16842fb55..14e53b3e2 100644 --- a/app/controllers/attachments_controller.rb +++ b/app/controllers/attachments_controller.rb @@ -28,8 +28,8 @@ class AttachmentsController < ApplicationController update_downloads(@file) end - - def get_file + + def get_file normal_status(-1, "参数缺失") if params[:download_url].blank? url = URI.encode(params[:download_url].to_s.gsub("http:", "https:")) response = Faraday.get(url) @@ -45,7 +45,7 @@ class AttachmentsController < ApplicationController uid_logger("#########################file_params####{params["#{params[:file_param_name]}"]}") raise "未上传文件" unless upload_file - folder = edu_setting('attachment_folder') + folder = file_storage_directory raise "存储目录未定义" unless folder.present? month_folder = current_month_folder @@ -108,7 +108,7 @@ class AttachmentsController < ApplicationController end # 附件为视频时,点击播放 - def preview_attachment + def preview_attachment attachment = Attachment.find_by(id: params[:id]) dir_path = "#{Rails.root}/public/preview" Dir.mkdir(dir_path) unless Dir.exist?(dir_path) @@ -118,10 +118,10 @@ class AttachmentsController < ApplicationController else normal_status(-1, "出现错误,请稍后重试") end - else + else if system("rm -rf #{dir_path}/#{attachment.disk_filename}") normal_status(1, "操作成功") - else + else normal_status(-1, "出现错误,请稍后重试") end end diff --git a/app/controllers/users_controller.rb b/app/controllers/users_controller.rb index 4a67fd413..d5ca638a6 100644 --- a/app/controllers/users_controller.rb +++ b/app/controllers/users_controller.rb @@ -1,4 +1,5 @@ class UsersController < ApplicationController + include ApplicationHelper include Ci::DbConnectable before_action :load_user, only: [:show, :homepage_info, :sync_token, :sync_gitea_pwd, :projects, :watch_users, :fan_users] @@ -79,7 +80,7 @@ class UsersController < ApplicationController def attachment_show file_name = params[:file_name] - path = params[:path] || edu_setting('attachment_folder') + path = params[:path] || file_storage_directory send_file "#{path}/#{file_name}", :filename => "#{file_name}", :type => 'game', :disposition => 'attachment' #inline can open in browser diff --git a/app/helpers/application_helper.rb b/app/helpers/application_helper.rb index 1ac9a85b7..75532188e 100644 --- a/app/helpers/application_helper.rb +++ b/app/helpers/application_helper.rb @@ -322,7 +322,15 @@ module ApplicationHelper end def absolute_path(file_path) - File.join(edu_setting('attachment_folder'), file_path) + file_root_directory + File.join(edu_setting('attachment_folder'), file_path) + end + + def file_root_directory + Rails.root.to_s + end + + def file_storage_directory + file_root_directory + edu_setting('attachment_folder') end def local_path(file)