java - 从本地机器到tomcat部署的webapp的InputStream

标签 java web-applications web inputstream

我有一种情况,我想从本地计算机(假设文件目录是 C:\Users\temp\file.txt)到具有 Windows Server 2008 的远程服务器创建 inputStream。

如何让网络应用程序使用该文件的本地版本,因为我在编译成 WAR 文件之前尝试过此操作。

File f = new File("C:\Users\temp\file.txt");

当我尝试使用 InputStream 时,它崩溃了。我相信它引用了服务器的 C:\Users\temp\file.txt,该文件不存在。

我知道这是一个“愚蠢”的问题,但任何建议都会非常有帮助。

最佳答案

如果您尝试从另一台计算机访问存储在一台计算机上的文件,则必须以某种方式“共享”该文件。有几种相当简单的方法可以做到这一点:

  1. 设置网络文件系统。常见的选择是 Sambaan S3 bucket mounted as a drive 。这样做的优点是,为了读取文件的目的,所有文件都显示为“本地”,因此您可以像平常一样使用 FileInputStream
  2. 使用 HTTP 共享。设置 HTTP 服务器,如 Apache在包含该文件的主机上,将文件复制到 Web 共享目录,然后使用 URL或者像 Apache HTTPComponents Client 这样的 HTTP 客户端通过 URL 访问该文件。 (您也可以将此方法与 FTP 或其他服务结合使用。)

一开始共享文件有点麻烦,但是一旦设置了共享文件系统或 Web 服务器,共享大量文件就轻而易举了。

关于java - 从本地机器到tomcat部署的webapp的InputStream,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16200496/

相关文章:

java - 为什么 TestNG Selenium 并行方法不起作用?

javascript - 当您调整窗口大小时图表自动缩放(使用谷歌网络应用程序制作)

http - 如果我为 http 过期设置了遥远的 future 日期,我该如何推送意外更改?

java - Spring应用程序的默认html页面

javascript - 如何获取网站的背景颜色?

java - 集合中的元素是如何存储的?

java - 为什么我的循环在计算最后一个数字之前就跳出了?

java - 在 Mac 上添加菜​​单栏空间

json - 使用 Golang 将 CSV 转换为 JSON - 在 Web 浏览器中打印时会跳过一些数据

java - 如何使用 thymeleaf 递归渲染菜单