2010-12-11 37 views
0

我需要如何動態生成的文件通過我的工作遠程服務器上運行我的前端服務器上運行的用戶面板,管理崗位的工作取得一些建議。取出由作業服務器文件到我的前端服務器

我不希望我的作業服務器的IP被公開,因此允許用戶從作業服務器直接下載是不受歡迎的。

我還需要一些jQuery庫,以顯示下載速度,某種形式的進度條。

回答

1

我認爲這將有助於瞭解幾個問題的答案。

關閉我的頭頂:

  • 可以有多大的文件呢?
  • 下載文件可能需要多長時間?
  • 這些文件是什麼格式?
  • 您從作業服務器獲取的文件是靜態的嗎? (或者,它們是否被每次再生?)

編輯:

jQuery用戶界面具有progress bar(docs)

從你的用戶面板,您將有一個這樣的鏈接:

<a href="remoteTxtFile.php?file_id=100">File 100</a> 

這個環節應該啓動一個jQuery.getJSON()請求remoteTxtFile.php您的前端服務器,在其上:

  • 檢查以看看請求的文件是否已經被下載。
  • 如果有,返回一個JSON對象是這樣的:{「位置」:「/cache/file_100.txt」}
    • 阿賈克斯成功回調則可以顯示一個鏈接到該文件。
  • 如果沒有,開始下載使用東西(思想進一步下跌)的文件,該文件可以輸出進步到一個文本文件中。將文件保存到「緩存」文件夾。返回這樣的JSON對象:{「進步」:0}
  • 定期(每秒左右)消防另一個的getJSON()的PHP腳本讀取下載進度的txt文件,並返回一個像這樣的JSON對象:{」進步 ':52} (百分比):
  • 當下載完成後,從PHP返回JSON這樣的:{' 位置': '/cache/file_100.txt'}
    • 當阿賈克斯成功回調看到「位置」,該文件已經完成,因此顯示鏈接。

我不知道,你應該使用什麼樣的文件的實際下載。使用PHP和stream_notification_callback做下載(和輸出進度)的問題是,整個文件就會被下載到內存中,這是沒有好處的1 GB的文件。

也許使用wget來做實際下載會更好。

+0

文件的範圍可以從1mb到1000mb。 jobserver是100mbps,所以下載速度也很快,前端也是如此。 txt文件。文件分別被重新生成爲編號相同的文件名,如example.txt – KJW 2010-12-11 20:39:08

相關問題