Guest User

Untitled

a guest
Feb 19th, 2018
106
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.67 KB | None | 0 0
  1. require 'drb'
  2. require 'digest/md5'
  3. OUTPUT_PATH = "/home/zero/z.orez.us/public/ooo/"
  4.  
  5. class OooController < ApplicationController
  6. layout 'service'
  7.  
  8. def index
  9.  
  10. end
  11.  
  12. def upload
  13. newfn = Digest::MD5.hexdigest(params[:ooo].original_filename + Time.now.to_s)
  14. fin = OUTPUT_PATH + newfn + File.extname(params[:ooo].original_filename)
  15. File.open(fin, 'w') do |f| f.write params[:ooo].read end
  16. fout = OUTPUT_PATH + newfn + ".pdf"
  17. DRb.start_service
  18. pdfserver = DRbObject.new(nil, 'druby://:10500')
  19. logger.info("Going to convert from #{fin} to #{fout}")
  20. pdfserver.convert(fin, fout)
  21. DRb.stop_service
  22. session[:chk] = 0
  23. render :text => "$('upload_status').innerHTML = '轉換中,請稍後...<img src=\"/images/wait.gif\"/>';new PeriodicalExecuter(function(){new Ajax.Request('/ooo/check/#{newfn}', {method: 'get'});}, 5);"
  24. end
  25.  
  26. def check
  27. session[:chk] += 1
  28. fn = OUTPUT_PATH + params[:id] + '.pdf'
  29. logger.info "check file #{fn}"
  30. headers["Content-Type"] = "text/javascript; charset=utf-8"
  31. if File.exist? fn
  32. logger.info "file is there."
  33. # Conversion complete
  34. session[:chk] = 0
  35. render :text => "location.href='/ooo/download/#{params[:id]}';"
  36. else
  37. # Still converting...
  38. if session[:chk] < 12
  39. logger.info "wait..."
  40. render :text => "$('upload_status').innerHTML = '轉換中,請稍後...<img src=\"/images/wait.gif\"/>';"
  41. else
  42. logger.info "failed"
  43. session[:chk] = 0
  44. render :text => "location.href='/ooo/failed';"
  45. end
  46. end
  47. end
  48.  
  49. def download
  50. end
  51.  
  52. def failed
  53. end
  54. end
Add Comment
Please, Sign In to add comment