Java SE HTML POST проблема с именем файла

В настоящее время я пишу программу, использующую 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.

1 ответ

Я не уверен, что ваш NanoHTTPD такой же, как мой, но с моим вы можете получить исходное имя файла, посмотрев на объект параметров parms для того же ключа, который вы извлекаете файл из объекта параметров файлов.

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);
    }

Получив имя файла, вы можете использовать любой метод, который хотите переименовать файл. (При правильной проверке. Это может быть огромной дырой в безопасности, если вы полностью доверяете их исходному имени файла.)

Другие вопросы по тегам