我的目标是上传图片并将图片内部文件夹保存到网页内容文件夹。
{请参阅下图}
并将图像路径保存到数据库
{请参阅下图}
我在this link遇到了一些问题 我试图这样做,但我没有设法将图像保存到images / users文件夹。
我意识到保存路径存储在我的C DRIVE中。如果我更换电脑怎么办?图像会在那里吗?
以下是我的代码。 帮助将是欣赏..谢谢! :)
在 jsp
中<input type="file" name="file">
在 servlet
中public class AServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
private static final String SAVE_DIR = "WebContent\\images\\users";
.........
protected void doPost(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
// gets absolute path of the web application
String appPath = request.getServletContext().getRealPath("");
// constructs path of the directory to save uploaded file
String savePath = appPath + File.separator + SAVE_DIR;
// creates the save directory if it does not exists
File fileSaveDir = new File(savePath);
if (!fileSaveDir.exists()) {
fileSaveDir.mkdir();
}
for (Part part : request.getParts()) {
String fileName = extractFileName(part);
part.write(savePath + File.separator + fileName);
}
System.out.println(savePath);
}
private String extractFileName(Part part) {
String contentDisp = part.getHeader("content-disposition");
String[] items = contentDisp.split(";");
for (String s : items) {
if (s.trim().startsWith("filename")) {
return s.substring(s.indexOf("=") + 2, s.length()-1);
}
}
return "";
}
答案 0 :(得分:0)
按照SasiKathimanda提供的链接进行代码实施。
将文件名创建为“OrignalFilename + SystemTimeInMills”,以避免覆盖已上传的文件名相同的文件。
否则在将filecontent写入服务器之前检查重复的文件名。
如果您需要提供下载选项(稍后),请遵循模式(对于数据库文件路径),否则您可以保存上传的绝对文件路径。