【问题标题】:Accessing files from users local machine from deployed server (i.e. my webApplication) in java从Java中部署的服务器(即我的Web应用程序)访问用户本地计算机的文件
【发布时间】:2015-05-05 10:05:13
【问题描述】:

我正在开发一个网络应用程序,我想从用户那里获取图像。 所以我写了一个Servlet 来从用户那里获取文件路径。我将文件路径传递为...

localhostApiBase/image?path=/home/userName/Pictures/25.jpg

我在本地主机上部署了我的应用程序,它工作正常。即我的应用程序找到了该文件并按预期进行了处理。我正在阅读这样的图像

File oFile = new File(path);    
BufferedImage oImage = ImageIO.read(oFile);

然后我将我的应用程序部署到 AWS Elastic Beanstalk,当我尝试使用与...相同的路径访问相同的 Servlet 时。

serverApiBase/image?path=/home/userName/Pictures/25.jpg

然后

File oFile = new File(path);
oFile.exists(); // returns false
BufferedImage oImage = ImageIO.read(oFile); // throws java.nio.file.NoSuchFileException: /home/userName/Pictures/25.jpg

经过一番努力,我知道它试图在服务器(AWS Elastic Beanstalk) 上查找文件,而不是在我(用户的)本地计算机上。所以它正在抛出

       java.nio.file.NoSuchFileException .

谁能帮我解决这个问题。我希望用户从他们的机器上传图片,我将进一步使用它们......

【问题讨论】:

    标签: java amazon-web-services image-uploading amazon-elastic-beanstalk


    【解决方案1】:

    如果您想在运行时从用户那里获取图像,您必须创建一些上传逻辑。这是一个很好的解释:How to upload files to server using JSP/Servlet?

    如果图像是静态的,即应用程序的一部分使用 Drux 提到的方法。

    【讨论】:

      【解决方案2】:

      像这样将用户上传的文件保存在服务器存储中,

              File targetFile = new File(filePath);
              OutputStream outStream = new FileOutputStream(targetFile);
              outStream.write(buffer);
              outStream.close();
      

      并像这样访问文件,

              server_ip/image?path=filePath
      

      【讨论】:

        猜你喜欢
        • 2014-03-07
        • 1970-01-01
        • 2017-10-28
        • 2012-02-09
        • 1970-01-01
        • 2013-08-21
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多