检索保存在Cloudbees上托管的应用程序中的文件中的用户响应

时间:2013-04-28 07:20:34

标签: hosting web-hosting cloudbees

我在CloudBees上托管了一个Tomcat应用程序,允许用户编辑一些XML并保存它们。我需要在本地下载并保存这些文件以供个人使用。但是我找不到办法做到这一点。我尝试了“下载源”选项,但它下载了我上传的原始文件而不是编辑后的版本。但是我的应用程序能够访问已编辑的版本(显然所有内容都可以保存)。获取这些文件对我来说非常关键和必要,事实上,这个应用程序的全部动机。请告诉我们是否有办法取回CloudBees或任何其他免费Java托管网站中的文件,这样我就可以这样做。

1 个答案:

答案 0 :(得分:2)

从您的问题来看,您的应用目前处理这些文件的方式并不是很清楚,但我会提供一些常规信息。

要支持编辑和下载文件,您的应用设计需要解决以下问题:

  1. 用户如何编辑/上传更改后的XML?
  2. 您的应用在哪里存储更改的XML?
  3. 您的应用如何检索已编辑的XML并使其可供下载?
  4. 对于#1,您需要在应用中提供编辑或上传界面来操作XML文件。我假设你的应用已经使用某种形式解决了这个问题。

    对于#2,您需要选择一种方法来存储适合应用程序需求的文件以及部署应用程序的运行时环境。例如,在CloudBees(或大多数其他CLoud平台)上,了解应用程序的本地文件系统可用于临时存储非常重要,但它不是群集的,每次更新或重新启动应用程序时都会被删除。如果这些XML文件需要永久可用,则需要将它们存储在应用程序运行时实例外部的持久位置。大多数开发人员使用数据库(例如CloudBees MySQL服务)以这种方式存储持久数据。通常,您的应用可以将这些文件存储在任何位置,但您的应用需要管理如何存储它们,以及如何在以后检索它们。

    对于#3,要允许用户下载更改的文件,您需要实现自己的机制,以便从其持久位置检索文件,然后将其发送回用户的浏览器。如果您需要右键单击“另存为”以使其工作,那么您的应用只需要支持可以直接在浏览器中显示已编辑的XML文件的URL。如果您的应用程序随后提供了指向该URL的链接,则用户可以使用RightClick + SaveAs下载该URL。如果您希望用户能够单击按钮/链接并自动触发“另存为”对话框,那么您需要编写一个URL处理程序(Servlet),使用Content-Disposition标头提供XML内容(请参阅这StackOverflow article)。此标头将告诉浏览器该文件应该保存到磁盘,并允许您提供默认文件名。