转换变为既时转换

redis_cache
guange 10 years ago
parent d3baada893
commit 444658d0b3

@ -66,6 +66,12 @@ class AttachmentsController < ApplicationController
file.downcase.end_with?(".pdf") file.downcase.end_with?(".pdf")
end 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 def download
# modify by nwb # modify by nwb
# 下载添加权限设置 # 下载添加权限设置
@ -73,16 +79,23 @@ class AttachmentsController < ApplicationController
if candown || User.current.admin? || User.current.id == @attachment.author_id if candown || User.current.admin? || User.current.id == @attachment.author_id
@attachment.increment_download @attachment.increment_download
if stale?(:etag => @attachment.digest) if stale?(:etag => @attachment.digest)
if params[:force] == 'true'
direct_download
else
convered_file = @attachment.diskfile convered_file = @attachment.diskfile
#如果本身不是pdf文件则先寻找是不是已转换化如果没有则转化
unless pdf?(convered_file) unless pdf?(convered_file)
convered_file = File.join(Rails.root, "files", "convered_office", @attachment.disk_filename + ".pdf") 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 end
if File.exist?(convered_file) && pdf?(convered_file) if File.exist?(convered_file) && pdf?(convered_file)
send_file convered_file, :type => 'application/pdf; charset=utf-8', :disposition => 'inline' send_file convered_file, :type => 'application/pdf; charset=utf-8', :disposition => 'inline'
else else
send_file @attachment.diskfile, :filename => filename_for_content_disposition(@attachment.filename), direct_download
:type => detect_content_type(@attachment), end
:disposition => 'attachment' #inline can open in browser
end end
end end
else else

@ -259,13 +259,14 @@ class Attachment < ActiveRecord::Base
end end
def office_conver def office_conver
return unless %w(Project Course).include? (self.container_type) # 不在这里做后台转换,换为点击时做转换
saved_path = File.join(Rails.root, "files", "convered_office") # return unless %w(Project Course).include? (self.container_type)
unless Dir.exist?(saved_path) # saved_path = File.join(Rails.root, "files", "convered_office")
Dir.mkdir(saved_path) # unless Dir.exist?(saved_path)
end # Dir.mkdir(saved_path)
convered_file = File.join(saved_path, self.disk_filename + ".pdf") # end
OfficeConverTask.new.conver(self.diskfile, convered_file) # convered_file = File.join(saved_path, self.disk_filename + ".pdf")
# OfficeConverTask.new.conver(self.diskfile, convered_file)
end end
# Copies the temporary file to its final location # Copies the temporary file to its final location

@ -30,6 +30,7 @@
<% else %> <% 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) %> <%= 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 %> <% end %>
<%= link_to '下载',download_named_attachment_path(file.id, file.filename, force: true),class: 'f_l re_open' %>
<% end %> <% end %>
</div> </div>
<div class="cl"></div> <div class="cl"></div>

@ -17,12 +17,13 @@ module Trustie
if File.exist? @file if File.exist? @file
if office? if office?
begin begin
resource = RestClient::Resource.new( # resource = RestClient::Resource.new(
'http://192.168.80.107/Any2HtmlHandler.ashx', # 'http://192.168.80.107/Any2HtmlHandler.ashx',
:timeout => -1, # :timeout => -1,
:open_timeout => -1 # :open_timeout => -1
) # )
req = resource.post :txtDes => File.new(@file, 'rb') # 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) File.delete(saved_file) if File.exist?(saved_file)
if req.body.length > 10 && !req.body.eql?('转换出错') if req.body.length > 10 && !req.body.eql?('转换出错')
File.open(saved_file, "wb+") do |f| File.open(saved_file, "wb+") do |f|

Loading…
Cancel
Save