2017-06-12 74 views
0

我的要求是從java servlet中的文件系統加載zip文件並將其公開爲URL(不提取zip文件)。如何在java servlet中加載zip文件並將其公開爲URL

例如,zip文件位於C:\ temp \ example.zip中。這個zip文件的內容是

  1. example.html的及其相關文件
  2. one.js
  3. two.js.

如何構造URL如「http://localhost:8080/app/example.zip/example.html」? 服務器可能是碼頭。任何幫助,高度讚賞。謝謝。

我甚至可以改變服務器或者可以使用其他一些方法來實現上面的解決方案。如前所述,唯一的約束是「不應該被提取」。

+0

怎麼會有人知道里面的zip是什麼?我的意思是,在example.zip /應該是example.html還是one.js或其他什麼之後,人們怎麼知道? – borowis

+0

如果文件不在服務器的目錄中,則無法執行 –

+0

感謝您的回覆@borowis。假定文件的名稱與example.html相似。 – Nagaraj

回答

0

如果你需要爲每一個在歸檔中的條目的URL,你最好的辦法是隻枚舉的條目,這將希望只讀ZIP文件的目錄:

List<URL> urls = new ArrayList<>(); 

    ZipFile zip = new ZipFile(file); 

    Enumeration<? extends ZipEntry> entries = zip.entries(); 
    while(entries.hasMoreElements()) 
     urls.add(new URL("http://localhost:8080/app/" 
      + file.getName() + "/" + entries.nextElement().getName())); 

    zip.close(); 
0

我通過創建另一個休息服務並通過Zip條目循環解決這個問題,並在ServletOutputStream中寫入特定的文件內容...因此可以通過這個休息服務來訪問。感謝大家的建議。

相關問題