【问题标题】:"rename" FileItem“重命名”文件项
【发布时间】:2012-09-17 22:20:16
【问题描述】:

从业务角度来看,问题出在这里

我们有许多人们使用的共享文件夹,我们称之为//shared/the/drive。但是,我们的服务器可能将此共享驱动器称为其他名称,可能是//ir83pn3br8mwhonamesthesethingsanyway/the/drive,因为网络组坚持使用令人难以置信的混乱服务器名称。对于大多数服务器来说,使用简单的名称就可以了,但是在这个服务器上,它就不能正常工作了。所以我们的问题的创可贴是,在我们的代码中,就像“哦,你正在使用shared - 我们将用stupid name from networking替换它。

好的,现在进入更技术性的方面:

我有一个FileItem(Apache commons FileUpload 模块)对象,它的名称可能为//shared/the/drive/stuff/plans.doc。我需要创建一个引用//stupidname/the/drive/stuff/plans.docFileItem。我该怎么办?

我应该在 JSP 中编辑请求对象吗?这听起来是个坏主意。

我应该使用反射来编辑 FileItem 对象吗?这听起来像是一个更糟糕的主意。

我不是前端人员(请注意我在哪些标签中投票......哈哈),真的......更像是一个服务器老兄......这只是掉到了我的盘子里。是否可以在文本框到达请求之前拦截它,将更改移动到客户端?

我不可能是第一个遇到这个问题的人。我不是一定要寻找代码(我会介意吗?不,我不会。)而是一种通用的方法,即什么会起作用,和/或这种事情(改变用户输入的内容)是如何在 '最好的做法是最受欢迎的。

【问题讨论】:

  • 不管结果如何,听起来这个问题值得dailywtf。
  • 我不太确定。我曾经访问过的每个雇主和客户站点都有一些愚蠢的服务器命名方式。这个最近的尝试坚持将物理位置放在服务器名称中。这对于将我们的数据中心从一个城市迁移到另一个城市并没有起到很好的作用,因为所有服务器都必须重新命名。同时,“合乎逻辑”的名称也被取消了。因此,如果您有一个名为“MyApp”的应用程序和一个专用于它的盒子,那么您不能只调用该盒子//MyApp - 它必须是chidcpapp12 或其他名称,因为它是芝加哥的第12 个服务器。是的...

标签: java immutability fileitem


【解决方案1】:

在处理分布式文件系统时,有一个用户可以看到和处理的“假路径”和一个代表实际节点的后端路径并不罕见,该节点允许您在收到的请求的上下文中操作文件。

您在网络上点击的每个页面都不是由您在浏览器中键入的物理 URL 表示的。在 CMS 系统中,CDN 上的文件是从数据库中动态创建的......无论如何。

无需破解任何对象。您只需将它们与包含它们的瞬态属性的另一个对象包装起来,例如这次我将在哪里访问该文件。

【讨论】:

  • 我对此进行了调查,但FileItem 有一个私有构造函数。我不能把它们包起来。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-09-09
  • 1970-01-01
  • 2013-11-21
  • 2015-10-08
  • 2016-05-29
  • 2014-01-20
  • 2012-03-03
相关资源
最近更新 更多