猿问

文件上传的路径问题

public class UploadServlet3 extends HttpServlet {

    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

        doGet(request, response);

    }


    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

        //检测form是否是multipart/form-data类型的

        boolean isMultipart = ServletFileUpload.isMultipartContent(request);

        if (!isMultipart) {

            throw new RuntimeException("The form's enctype attribute value must be multipart/form-data");

        }

        //解析请求内容

        DiskFileItemFactory factory = new DiskFileItemFactory();    //产生FileItem的工厂

        ServletFileUpload sfu = new ServletFileUpload(factory);

        List<FileItem> items = new ArrayList<FileItem>();

        try {

            items = sfu.parseRequest(request);

        } catch (FileUploadException e) {

            throw new RuntimeException("解析请求失败");

        }

        //遍历:

        for (FileItem item : items) {

            //处理普通字段

            if (item.isFormField()) {

                processFormField(item);

            } else {

                //处理上传字段

                processUploadField(item);

            }

        }



    }


    protected void processUploadField(FileItem item) {

        try {

            InputStream in = item.getInputStream();

            //找一个存放文件的位置;存放的文件名

            String fileName = item.getName();   //上传的文件的文件名

            if (fileName != null) {

                fileName = FilenameUtils.getName(fileName);

            }


其中:


        //存放路径

        String realPath = getServletContext().getRealPath("/WEB-INF/files");

        

在部署到tomcat中后,并没有发现上传后的文件在WEB-INF目录下,这样不就不能保证服务器端的安全吗?反而是在项目根目录下发现的。


跃然一笑
浏览 614回答 3
3回答

12345678_0001

jsp的表单提交给servlet的路径错误

慕婉清6462132

WEB-INFO这个路径好像是比较特殊,普通的读写都不能再这个目录下。我之前也遇到过,硬是读不出数据来。

明月笑刀无情

文件不建议放在应用服务路径下,可以考虑通过配置文件放在特定文件夹下,如果没有特殊的权限要求,这些文件可以通过nginx或者Apache去访问。应用服务器的部署或者重启都可能让文件丢失
随时随地看视频慕课网APP

相关分类

Java
我要回答