0

我有一个字节数组存储在磁盘中,ZK Framework稍后我需要检索这个字节数组并创建一个文件,the real file我需要稍后将它传递给图像上的画廊,使用Javascript jquery plugin该画廊使用以下模式来显示图像。

<h:a href="http://upload.wikimedia.org/wikipedia/commons/thumb/4/46/Bohinjsko_jezero_2.jpg/800px-Bohinjsko_jezero_2.jpg">
<h:img                     src="http://upload.wikimedia.org/wikipedia/commons/thumb/4/46/Bohinjsko_jezero_2.jpg/100px-Bohinjsko_jezero_2.jpg"/>

到目前为止我解决了什么?

我已经使用字节数组创建了文件,使用CommonsIO是可以的。我想知道 java7 是否有一种方法可以从arrayofBytes现在不重要的文件创建文件。

如您所见,这里最重要的是插件需要获取我的文件图像

<h:img                    src="http://upload.wikimedia.org/wikipedia/commons/thumb/4/46/Bohinjsko_jezero_2.jpg/100px-Bohinjsko_jezero_2.jpg"/>

我已经在其中创建了一个文件,temp directory但是我猜这个目录对于浏览器来说是无法访问的,因为正在触发错误图像未找到我的解决方案是在使用静态图像的文件夹内创建file image内部图像文件WEBCONTENT/image夹我的问题是..

如何以编程方式获取我的应用程序目录的完整路径?就像是

C:\app\eclipse\myproject\WebContent\img\temporals 

稍后在这里创建temporal file

有一种更好的方法,我在开始时只有图像的字节数组..

多谢..

4

1 回答 1

1

我认为在 Web 应用程序的生命周期内将数据写入 Web 应用程序目录本身是失礼的。尝试通过路径引用这些文件更糟糕。当重新部署应用程序时,这些文件将被删除,并且在 servlet 容器中,您很少通过文件的实际路径引用文件,而是引用 servlet 的路径。

根据您的设置,您可能根本不需要将文件写入磁盘。最后,您的服务器需要读取该文件并将其流式传输到客户端。

您最好的选择可能是提供一个 servlet,它只使用正确的 mime 类型(例如:image/jpeg)流回字节数组。
这个答案暗示了类似的事情。
这个答案讨论了实现。
如果您仍然使用字节数组,这对您来说是理想的。

利用 ZK 的另一种选择是使用字节数组创建一个AImage并直接渲染它

您还可以考虑从您的服务器提供静态内容(如果您使用的是 Tomcat 之类的 servlet 容器,则可能不直接)或使用 Apache Server 之类的更简单的服务器来托管您的图像。

在不了解您问题的背景的情况下,很难具体推荐任何内容。

于 2013-08-15T21:32:47.750 回答