在这里提出关于图片的问题(似乎比我最初预测的更加困难)。我正在开发一个基于JSF 2.0(apache myFaces)的Java Web应用程序,并希望该应用程序能够将图片上传到运行它的服务器上的目标位置。我有一个运行着mySQL数据库的Windows r2 2008服务器,但我不想将图像存储在数据库中,而是宁愿将其存储在服务器上的某个位置,然后只将路径保存为字符串在数据库中。
有人告诉我这是最好的方法,但我似乎找不到如何在服务器上保存它的示例。我将应用程序作为WAR文件在Apache Tomcat服务器上运行,所以我不知道是否必须将文件保存到服务器驱动器上的路径(例如C:\images)或项目本身中的特殊文件夹(包括java、html文件)。非常感谢任何帮助。我完全迷失了方向,一整天都在试图解决这个问题。
我用来上传图像到Java类的代码是这样的(由CodyS提供):
InputStream is = uploadedFile.getInputStream();
byte[] buffer = new byte[(int) uploadedFile.getSize()];
is.read(buffer);
File f = new File("C:\\temp\\" + this.patient.getPk() + ".jpeg");
f.createNewFile();
FileOutputStream fos = new FileOutputStream(f);
fos.write(buffer); //This is where I write it to the C Drive
fos.close();
is.close();
我不想将图片写入C盘,而是在服务器上运行程序,但是我应该将图片存储在哪里以便稍后在XHTML文件中检索和显示?希望我的需求表述清晰,如果有误,请告诉我,我会尝试用其他方式解释。