2014-08-28 47 views
0

我正在使用Google的GWT開發Web應用程序。目前我上傳圖片到Web服務器,並使用一個Java servlet保存圖片:如何使用java servlet加載更小更快的圖像?

for (FileItem item : sessionFiles) { 
    String fileName = item.getName(); 

    File file = new File("imagePath"); 

    item.write(file); 
} 

之後,我只需要提供圖片的網址,以顯示它的瀏覽器。

不幸的是,這是對我的問題很糟糕的解決方案,因爲這個特定的Web應用程序每頁加載多個預覽圖像(產品目錄)。

當呈現預覽圖像時(如您在Google上搜索圖像時看到的那樣),是否有任何方法可以將保存圖像的較小版本加載到客戶端?

+0

您可以爲預覽圖像提供不同的URL。問題在哪裏? – 2014-08-28 17:22:14

+0

@Andrei是的,我知道,但我想只有一個圖像在加載到客戶端(預覽情況下)之前壓縮/縮小,並且只有在用戶請求時才加載完整圖像。 – belyid 2014-08-28 17:57:42

+0

@belyid然後這與GWT無關。如果您從等式(和問題)中刪除GWT並更新您的標籤,您將有更好的機會獲得一個很好的答案;可能會添加[tag:servlets]開頭(並刪除[tag:gwt]) – 2014-08-28 19:38:12

回答

2

這應該在服務器端完成。

例如,您可以請求一個帶有選項?size=preview的圖像,它將指示您的servlet檢索具有指定標識或名稱的圖像,並在返回客戶機之前將其大小調整爲預覽大小。

UPDATE:

作爲吉榮建議,我完全同意,保存文件的兩個版本 - 預覽和全 - 是的路要走,特別是如果你表現出的圖像頻繁。作爲額外的好處,瀏覽器將能夠緩存預覽和完整圖像。

+0

這是一個更好的選擇,而不是保存幾個不同大小的相同圖像的版本,並根據需要上傳一個小的或正常的? – belyid 2014-08-29 08:46:36

+2

我會親自爲服務器上的預覽和圖像的完整分辨率版本保存一個較小的版本。上傳時自動調整大小(請參閱Java 2D庫),但每次加載圖像時調整大小都會影響服務器的性能。 – 2014-08-29 08:49:38

+0

@jeroen_de_schutter:我完全同意,我更新了我的回答以反映您的意見。 – 2014-08-29 11:31:46