我的简单网站正在使用Spring MVC。用户上传产品图像,网站将显示图像(带有产品名称,价格等)。数据库仅存储图像的详细信息,并将图像存储在目录中。问题是,我不确定图像存储应该在哪里。
// Creating the directory to store file
File dir = new File(imageDirectory);
if (!dir.exists())
dir.mkdirs();
// Create the file on server
File serverFile = new File(dir.getAbsolutePath()
+ File.separator + name);
例如,当变量imageDirectory的值为“\ temp”时,我的应用程序会将图像存储在“D:\ temp”中,我不知道如何将图像网址显示在我的网站上
当变量imageDirectory的值为“temp”时,我的应用程序将图像存储在“D:\ soft \ sts-bundle \ sts-3.5.1.RELEASE \ temp”中,我不知道如何获取图像网址在我的网站上显示
那么我应该在哪里存储上传图片以及如何获取上传的图片网址(存储在数据库中)?
答案 0 :(得分:0)
为了向最终用户显示您的图像,您必须将其存储在您的网络应用程序中。
理想的方法是在您的webapp中设置一个专用文件夹,用于存储上传文件,然后将相关网址发送给最终用户。
E.g。
//request is an instance of HttpServletRequest
File uploadDirectory = new File(request.getSession().getServletContext().getRealPath("/uploads"));
if (!uploadDirectory.exists()) {
uploadDirectory.mkdirs();
}
File reportFile = new File(reportDirectory.getAbsolutePath(), fileName);
String requestUrl = request.getRequestURL().toString();
requestUrl = requestUrl.substring(0, requestUrl.lastIndexOf("/") + 1) + "uploads/" + fileName;
return requestUrl;