簡體   English   中英

使用Java從已部署的服務器(即我的webApplication)從用戶本地計算機訪問文件

[英]Accessing files from users local machine from deployed server (i.e. my webApplication) in java

我正在開發一個Web應用程序,我想從用戶那里獲取圖像。 所以我寫了一個Servlet從用戶那里獲取文件路徑。 我正在將文件路徑傳遞為...

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

我將應用程序部署在localhost上,並且運行正常。 即我的應用程序找到了文件並按預期進行了處理。 我正在讀取這樣的圖像

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 .

誰能幫我解決問題。 我希望用戶從他們的計算機上上傳圖像,我將進一步使用...。

這樣將用戶上傳的文件保存在服務器存儲中,

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

然后像這樣訪問文件

        server_ip/image?path=filePath

如果要在運行時從用戶那里獲取圖像,則必須創建一些上傳邏輯。 這是一個很好的解釋: 如何使用JSP / Servlet將文件上傳到服務器?

如果圖像是靜態的,即應用程序的一部分,請使用Drux提到的方法。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM