我的网络应用程序是使用 jsp/javascript 编写的。后端Java。已设法实现在 Web 应用程序外部保存图像的代码,因为我不想将图像保存在 webapp/images 文件夹中(因为当服务器关闭并重建应用程序时,我会丢失那些保存的图像)。我想要的是从我的网络应用程序再次访问我保存在本地目录中的那些图像,但我不知道如何操作。我如何从jetty服务器访问我的本地文件夹,并且jetty服务器运行在同一台本地计算机上...
最佳答案
获取/image
的路径来存储和读取文件
getServletContext().getRealPath("/images");
甚至您可以从 servlet 的外部位置读取文件
File image = new File("d:\\image\1.jpg");
response.setBufferSize(DEFAULT_BUFFER_SIZE);
response.setContentType(contentType);
response.setHeader("Content-Length", String.valueOf(image.length()));
response.setHeader("Content-Disposition", "inline; filename=\"" + image.getName() + "\"");
BufferedInputStream input = null;
BufferedOutputStream output = null;
try {
// Open streams.
input = new BufferedInputStream(new FileInputStream(image), DEFAULT_BUFFER_SIZE);
output = new BufferedOutputStream(response.getOutputStream(), DEFAULT_BUFFER_SIZE);
// Write file contents to response.
byte[] buffer = new byte[DEFAULT_BUFFER_SIZE];
int length;
while ((length = input.read(buffer)) > 0) {
output.write(buffer, 0, length);
}
} finally {
// Gently close streams.
close(output);
close(input);
}
另请参阅
关于java - 从jetty中运行的Web应用程序访问本地目录图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11131675/