2

我目前正在编写一个使用 nanoHTTPD 将文件上传到服务器的程序。目前我可以成功上传具有预分配名称的文件。但是,我想保留正在上传的文件的原始名称。

现在如何上传:

Original filename: foo.jpg
Uploaded filename: file123.whatever

我希望它如何上传:

Original file name: foo.jpg
Uploaded filename: foo.jpg

这是正在使用的 HTML:

  <FORM ENCTYPE="multipart/form-data" ACTION="/uploaded.html" METHOD=POST>
Upload a file: <INPUT NAME="userfile1" TYPE="file">
<INPUT TYPE="submit" VALUE="Send File">
</FORM>

这是供参考的香草 nanoHTTPD 代码:http: //pastebin.com/pMNS3VKf

注意:我更喜欢使用 Java SE 而避免使用 Java EE。

欢迎任何建议,谢谢。

编辑:简而言之,我需要学习的只是从 HTML POST 中获取文件名。

4

1 回答 1

4

我不确定您的 NanoHTTPD 是否与我的相同,但是对于我的 NanoHTTPD,您可以通过查看 parms Parameters 对象来检索原始文件名,该对象与您从 files Parameters 对象中检索文件的键相同。

Enumeration<Object> keys = files.keys()
while (keys.hasMoreElements())
    {
    String key = keys.nextElement().toString();
    String origFileName = parms.getProperty(key);
    String fsFileName = files.getProperty(key);
    this.renameFile(fsFileName, origFileName);
    }

检索文件名后,您可以使用任何您想要重命名文件的方法。(通过适当的检查。如果您完全信任他们的原始文件名,这可能是一个巨大的安全漏洞。)

于 2012-10-24T00:34:20.733 回答