繁体   English   中英

无法获取在主机上上传的路径。 Jsp

[英]Can't get path to upload on host. Jsp

请帮助我,我试图在整个星期内在Google上找到答案,但对我来说却没有运气。 根本没有任何工作,这是我的问题,我将竭诚为您服务。

我想在我的主机上上传图片,我使用了这样的代码,它在localhost上运行良好,但在我的真实主机中却没有。 这是我的代码:

 boolean isMultipart = ServletFileUpload.isMultipartContent(request);
        if (!isMultipart) {
        }
        else {  
            FileItemFactory factory = new DiskFileItemFactory();
            ServletFileUpload upload = new ServletFileUpload(factory);
            List items = null;

            try {
                items = upload.parseRequest(request);
            } catch (FileUploadException e) {
                e.printStackTrace();
            }
            Iterator iter = items.iterator();



            while (iter.hasNext()) {
                FileItem item = (FileItem) iter.next();
                if (item.isFormField()) {
                    params.put(item.getFieldName(), item.getString());
                } else {
                    try {
                        String itemName = item.getName();
                        filename = rdhash.randomHash() + itemName.substring(
                                itemName.lastIndexOf("\\") + 1);
                        String realPath = getServletContext().getRealPath("/")
                                + "banner\\" + filename;

                        out.println(realPath);
                        File savedFile = new File(realPath);
                        item.write(savedFile);
                    } catch (Exception e) {
                        e.printStackTrace();
                    }
                }
            }

如我所说,它不能在我的真实主机上工作。 我试图找出为什么它不起作用,并且发现它无法获取上载路径,它可能无法获得上载路径,因为out.println()代码向我显示了这样的内容:

null\banner\[my file name].jpg

但是当我尝试使用本地主机时,它显示了整个项目路径,例如:

C:\[myproject folder]\banner\[my file name].jpg

我不知道为什么它无法在我的主机上获取真实路径。 请帮助我,我的想法现在飞速前进。 我的托管服务器是Tomcat 7Bros。

----------------------------更新---------------------这是我的server.xml内容的一部分。

 <Host name="localhost"  appBase="webapps"
        unpackWARs="true" autoDeploy="true">

    <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
           prefix="localhost_access" suffix=".log" rotatable="false"
           pattern="%h %l %u %t &quot;%r&quot; %s %b" />

  </Host>
   <Host name="[myhost].com" appBase="/Homedata/[hostname]/public_html" unpackWARs="true" deployXML="false">
      <Alias>www.[hostname].com</Alias> 
      <Context path="" reloadable="true" docBase="/Homedata/[hostname]/public_html" debug="1"/>
      <Context path="/manager" debug="0" privileged="true"
          docBase="/usr/local/easy/share/easy-tomcat7/webapps/manager">
      </Context>
   </Host>

将“ unpackWARs”属性添加到Tomcats“ server.xml”中的主机配置,并将其设置为true。 可能看起来像这样:

<Host appBase="webapps" autoDeploy="true" name="localhost" unpackWARs="true">

更好:不要将上传的文件放在您的应用目录中。 重新部署应用程序后,内容将丢失。 在服务器上任何位置创建一个外部目录,然后将完整路径添加到您的应用程序配置中。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM