我有一個詞雲應用程序,它根據用戶輸入文本生成圖像。此生成的圖像存儲在圖像文件夾中。我提供了一個保存圖像選項,允許用戶將此圖像保存在他們的桌面上。我通過調用下面顯示的servlet來讀取存儲的圖像&寫入字節流。java邏輯幫助保存圖像
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setHeader("Content-disposition","attachment; filename=output.png");
String filename = request.getSession().getServletContext().getRealPath("/")+"/images/output.png";
String mimeType = "image/png";
response.setContentType(mimeType);
File file = new File(filename);
response.setContentLength((int)file.length());
FileInputStream in = new FileInputStream(file);
OutputStream outputStream = response.getOutputStream();
byte[] buf = new byte[1024];
int count = 0;
while ((count = in.read(buf)) >= 0) {
outputStream.write(buf, 0, count);
}
in.close();
outputStream.close();
}
問題的這種方法是,如果另一用戶(用戶2)同時產生詞雲,它取代output.png與這個新的圖像。現在,如果用戶1試圖保存圖像,他會得到一個錯誤的圖像(用戶2的圖像)。
你能否給我推薦一個更好的方法,可以保持圖像用戶特定?