【问题标题】:image upload working on localhost fine but not in server in jsp图像上传在 localhost 上工作正常,但在 jsp 中的服务器上不工作
【发布时间】:2014-10-01 12:12:43
【问题描述】:

使用 request.getRealPath() 在 localhost 上正常工作的图像上传,但我们在服务器中使用的不是

工作,因为服务器找不到指定的路径..图像无法显示..我该如何解决这个问题.??

图片上传代码如下:

           filePath =request.getRealPath("") + "\\img\\";                 
            System.out.println(filePath);
        String contentType = request.getContentType();

        if ((contentType.indexOf("multipart/form-data") >= 0)) 
        {
            DiskFileItemFactory factory = new DiskFileItemFactory();
            ServletFileUpload upload = new ServletFileUpload(factory);
            List fileItems = upload.parseRequest(request);
                   //  message=    fileItems.get(2).toString();



            Iterator i = fileItems.iterator();

            while (i.hasNext()) {
                FileItem fi = (FileItem) i.next();
                                 if(fi.isFormField())
                                 {
                                     message=fi.getString();
                                     System.out.println("message is  : "+message);
                                     bean.setEmp_id(Integer.parseInt(message));
                                 }
                if (!fi.isFormField()) {
                    String fieldName = fi.getFieldName();
                    System.out.println("field name"+fieldName);
                    fileName = fi.getName();




                    if (fileName.lastIndexOf("\\") >= 0) {
                        file = new File(filePath
                                + fileName.substring(fileName
                                        .lastIndexOf("\\")));

                    } else {
                        file = new File(filePath
                                + fileName.substring(fileName
                                        .lastIndexOf("\\") + 1));

                    }
                    fi.write(file);

【问题讨论】:

  • 你能显示代码吗?以及您在本地和运行时获得的路径?
  • 本地图片上传到以下路径:E:\CRM\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps\CRM\img
  • 我使用 org.apache.commons.fileupload 库进行图片上传
  • 上传后检查文件是否保存在服务器中
  • 图片未上传

标签: java jsp jsp-tags


【解决方案1】:

getRealPath() 给出通向调用参数中指定文件的绝对路径(在文件系统上)。它以特定于操作系统的格式返回路径。

阅读request#getRealPath了解其文档。

还建议使用servletRequest.getSession().getServletContext().getRealPath("/") 而不是servletRequest.getRealPath("/"),因为它已被弃用。

所以最好的方法是自己为服务器提供upload path,因为特定于操作系统的方法值可能无法访问返回的路径(权限)。

希望这会有所帮助!!

【讨论】:

  • 非常感谢您的帮助。我知道是什么问题了。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-05-12
  • 1970-01-01
  • 2013-10-01
  • 2016-10-28
  • 2012-05-07
  • 1970-01-01
  • 2014-06-23
相关资源
最近更新 更多