转换变为既时转换
This commit is contained in:
parent
d3baada893
commit
444658d0b3
|
@ -66,6 +66,12 @@ class AttachmentsController < ApplicationController
|
|||
file.downcase.end_with?(".pdf")
|
||||
end
|
||||
|
||||
def direct_download
|
||||
send_file @attachment.diskfile, :filename => filename_for_content_disposition(@attachment.filename),
|
||||
:type => detect_content_type(@attachment),
|
||||
:disposition => 'attachment' #inline can open in browser
|
||||
end
|
||||
|
||||
def download
|
||||
# modify by nwb
|
||||
# 下载添加权限设置
|
||||
|
@ -73,23 +79,30 @@ class AttachmentsController < ApplicationController
|
|||
if candown || User.current.admin? || User.current.id == @attachment.author_id
|
||||
@attachment.increment_download
|
||||
if stale?(:etag => @attachment.digest)
|
||||
convered_file = @attachment.diskfile
|
||||
unless pdf?(convered_file)
|
||||
convered_file = File.join(Rails.root, "files", "convered_office", @attachment.disk_filename + ".pdf")
|
||||
end
|
||||
if File.exist?(convered_file) && pdf?(convered_file)
|
||||
send_file convered_file, :type => 'application/pdf; charset=utf-8', :disposition => 'inline'
|
||||
if params[:force] == 'true'
|
||||
direct_download
|
||||
else
|
||||
send_file @attachment.diskfile, :filename => filename_for_content_disposition(@attachment.filename),
|
||||
:type => detect_content_type(@attachment),
|
||||
:disposition => 'attachment' #inline can open in browser
|
||||
convered_file = @attachment.diskfile
|
||||
#如果本身不是pdf文件,则先寻找是不是已转换化,如果没有则转化
|
||||
unless pdf?(convered_file)
|
||||
convered_file = File.join(Rails.root, "files", "convered_office", @attachment.disk_filename + ".pdf")
|
||||
unless File.exist?(convered_file)
|
||||
office = Trustie::Utils::Office.new(@attachment.diskfile)
|
||||
office.conver(convered_file)
|
||||
end
|
||||
end
|
||||
if File.exist?(convered_file) && pdf?(convered_file)
|
||||
send_file convered_file, :type => 'application/pdf; charset=utf-8', :disposition => 'inline'
|
||||
else
|
||||
direct_download
|
||||
end
|
||||
end
|
||||
end
|
||||
else
|
||||
render_403 :message => :notice_not_authorized
|
||||
end
|
||||
rescue => e
|
||||
redirect_to "http: //" + (Setting.host_name.to_s) +"/file_not_found.html"
|
||||
redirect_to "http://" + (Setting.host_name.to_s) +"/file_not_found.html"
|
||||
end
|
||||
|
||||
#更新资源文件类型
|
||||
|
|
|
@ -259,13 +259,14 @@ class Attachment < ActiveRecord::Base
|
|||
end
|
||||
|
||||
def office_conver
|
||||
return unless %w(Project Course).include? (self.container_type)
|
||||
saved_path = File.join(Rails.root, "files", "convered_office")
|
||||
unless Dir.exist?(saved_path)
|
||||
Dir.mkdir(saved_path)
|
||||
end
|
||||
convered_file = File.join(saved_path, self.disk_filename + ".pdf")
|
||||
OfficeConverTask.new.conver(self.diskfile, convered_file)
|
||||
# 不在这里做后台转换,换为点击时做转换
|
||||
# return unless %w(Project Course).include? (self.container_type)
|
||||
# saved_path = File.join(Rails.root, "files", "convered_office")
|
||||
# unless Dir.exist?(saved_path)
|
||||
# Dir.mkdir(saved_path)
|
||||
# end
|
||||
# convered_file = File.join(saved_path, self.disk_filename + ".pdf")
|
||||
# OfficeConverTask.new.conver(self.diskfile, convered_file)
|
||||
end
|
||||
|
||||
# Copies the temporary file to its final location
|
||||
|
|
|
@ -30,6 +30,7 @@
|
|||
<% else %>
|
||||
<%= link_to(l(:label_slected_to_project),quote_resource_show_project_project_file_path(project,file),:class => "f_l re_select",:remote => true) if has_project?(User.current,file) %>
|
||||
<% end %>
|
||||
<%= link_to '下载',download_named_attachment_path(file.id, file.filename, force: true),class: 'f_l re_open' %>
|
||||
<% end %>
|
||||
</div>
|
||||
<div class="cl"></div>
|
||||
|
@ -37,7 +38,7 @@
|
|||
<p class="f_l c_grey02 font">文件大小:<%= number_to_human_size(file.filesize) %></p>
|
||||
<%= link_to( l(:button_delete), attachment_path(file),
|
||||
:data => {:confirm => l(:text_are_you_sure)}, :method => :delete,:class => "f_r re_de") if manage_allowed && file.container_id == project.id && file.container_type == "Project"%>
|
||||
<p class="f_r c_grey02" ><%= time_tag(file.created_on).html_safe %><%= l(:label_bids_published_ago) %> | 下载<%= file.downloads %> | 引用<%= file.quotes.nil? ? 0:file.quotes %> </p>
|
||||
<p class="f_r c_grey02" ><%= time_tag(file.created_on).html_safe %><%= l(:label_bids_published_ago) %> | 下载<%= file.downloads %> | 引用<%= file.quotes.nil? ? 0:file.quotes %> </p>
|
||||
</div>
|
||||
<div class="cl"></div>
|
||||
<div class="tag_h">
|
||||
|
@ -51,4 +52,4 @@
|
|||
<ul class="wlist">
|
||||
<%= pagination_links_full @obj_pages, @obj_count, :per_page_links => false, :remote => @is_remote, :flag => true%>
|
||||
</ul>
|
||||
<div class="cl"></div>
|
||||
<div class="cl"></div>
|
||||
|
|
|
@ -17,12 +17,13 @@ module Trustie
|
|||
if File.exist? @file
|
||||
if office?
|
||||
begin
|
||||
resource = RestClient::Resource.new(
|
||||
'http://192.168.80.107/Any2HtmlHandler.ashx',
|
||||
:timeout => -1,
|
||||
:open_timeout => -1
|
||||
)
|
||||
req = resource.post :txtDes => File.new(@file, 'rb')
|
||||
# resource = RestClient::Resource.new(
|
||||
# 'http://192.168.80.107/Any2HtmlHandler.ashx',
|
||||
# :timeout => -1,
|
||||
# :open_timeout => -1
|
||||
# )
|
||||
# req = resource.post :txtDes => File.new(@file, 'rb')
|
||||
req = RestClient.post 'http://192.168.80.107/Any2HtmlHandler.ashx',:txtDes => File.new(@file, 'rb')
|
||||
File.delete(saved_file) if File.exist?(saved_file)
|
||||
if req.body.length > 10 && !req.body.eql?('转换出错')
|
||||
File.open(saved_file, "wb+") do |f|
|
||||
|
|
Loading…
Reference in New Issue