使用我公司选择的云存储 api 并且刚开始使用 JSF 2.2。尝试构建一个简单的图像上传网络应用程序,当我使用 Eclipse 在本地运行时它可以工作。
这是代码:.xhtml 页面
<h:form id="form" enctype="multipart/form-data" prependId="false">
Select id Photo: <h:inputFile id="file" value="#{customerEntity.uploadedFile}"/>
<h:commandButton value="Query Cloud"
action="#{customerEntity.addActionController}"/>
</h:form>
customerEntity.java 代码:
private Part uploadedFile;
private String fileURI;
在本地机器上,从 Part 对象上传文件中提取文件名的代码会生成正确的文件定位器(例如 c:\pictures\mypix.jpg),以便在我的机器上进行本地访问。
但是,当我加载到在云 vm 中运行的 tomcat 7 中时,应用程序失败,并在“try”块中出现 FileNotFound:
File source = new File(this.fileURI);
try {
cloud.upload(new FileInputStream(source), source.length());
我的调试语句显示它正在使用来自我的本地电脑的文件定位器,这在服务器上显然不存在。我不知道如何将本地文件数据流式传输到服务器上运行的代码。
作为一个小小的 jsf 新手,我确信这很明显,但无法通过我看过的其他一些帖子弄清楚或解决。
任何指导将不胜感激!