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);
}
Получив имя файла, вы можете использовать любой метод, который хотите переименовать файл. (При правильной проверке. Это может быть огромной дырой в безопасности, если вы полностью доверяете их исходному имени файла.)