Java SE HTML POST文件名问题

时间:2012-06-27 21:41:06

标签: java file-upload filenames html-post nanohttpd

我目前正在编写一个程序,使用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>

这是vanilla nanoHTTPD代码供参考:http://pastebin.com/pMNS3VKf

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

欢迎任何建议,谢谢。

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

1 个答案:

答案 0 :(得分:4)

我不确定您的NanoHTTPD是否与我的相同,但是我可以通过查看parms参数对象来检索原始文件名,该对象用于从文件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);
    }

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