4

我的目标是上传图像并将图像文件夹内保存到 Web 内容文件夹。

{请看下图}

在此处输入图像描述

并将图像路径保存到数据库中

{请看下图}

在此处输入图像描述

我在尝试做的这个链接上遇到了一些问题, 但我没有设法将图像保存到图像/用户文件夹。

我意识到保存路径存储在我的 C 驱动器中。如果我换电脑怎么办?图像会在那里吗?

以下是我的代码。帮助将不胜感激.. 谢谢!:)

jsp中

<input type="file" name="file">

小服务程序中

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 "";
        }
4

1 回答 1

0

按照 SasiKathimanda 提供的链接进行代码实现。

将文件名创建为“OrignalFilename+SystemTimeInMills”,以避免覆盖已上传的具有相同文件名的文件。

否则在将文件内容写入服务器之前检查重复的文件名。

如果需要提供下载选项(稍后),请按照模式(For DB File Path),否则可以保存上传的绝对文件路径。

于 2013-12-31T04:02:23.470 回答