![](/img/trans.png)
[英]JBoss Application Server: Accessing deployed web application from another machine
[英]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.