【问题标题】:Checking for a Valid Path when Uploading a File Using commons-fileupload使用 commons-fileupload 上传文件时检查有效路径
【发布时间】:2009-06-26 17:49:17
【问题描述】:

我正在使用一些代码从表单上传图像并将其存储在我们的服务器上。在 Internet Explorer 中,用户可以手动输入路径,我想知道如何检查文件是否存在,即用户输入了有效路径。

有一个 FileItem 对象用于检查大小(例如,fileItem.getSize()

if (fileItem.getSize() == 0) {
  // Somethings wrong -- invalid path.
} else {
  // File exists -- valid path.
}

感谢任何建议。谢谢!

【问题讨论】:

  • 我认为当没有上传任何内容时您甚至都没有获得 FileItem。
  • 我确实得到了一个 FileItem,但输入的任何垃圾路径的大小都为零。
  • 谢谢,我不确定这一点,因为我从来没有通过不上传东西来测试我的文件上传。我想我知道你知道允许上传什么类型的东西,并且真的不期望一个零长度的文件你可以继续使用你的方法。

标签: java apache-commons-fileupload


【解决方案1】:

在客户端上,您无法使用脚本可靠地读取文件上传控件的文本。例如,IE8 和 Opera10 会欺骗您并提供包含“C:\fakepath\”的通用路径。这样做是出于隐私原因。

在服务器上,您可以完全按照您的方式进行操作,只需检查您是否确实在上传中获得了一个文件,如果是,那么您可以检查该文件,确定它是否符合您的条件。

【讨论】: