2013-06-06 4 views
1

У меня есть форма jsp с кнопкой загрузки. Когда пользователь нажимает эту кнопку, он загружает pdf-файл и всплывает. Я использую Chrome-браузер. Мое местоположение загрузкиКак открыть последний загруженный файл

C:\Users\gt\Downloads 

Для этого я использовал следующий код для открытия с этого места.

String filePath=System.getProperty("user.home")+"\\Downloads\\"+pdfname; 
Runtime.getRuntime().exec("rundll32 url.dll,FileProtocolHandler " +filePath); 

Теперь, когда пользователь нажимает на кнопку скачать файл PDF получит сохранить в этом месте под названием как F90CR0010-HBR-C-4.pdf и мой код будет открыть это правильно.

Когда пользователь снова нажмет кнопку загрузки еще раз, он сохранит как F90CR0010-HBR-C-4 (1).pdf Но мой код откроет только старый предыдущий файл. Потому что это имя только. Мне нужно открыть последний загруженный файл.

Любая идея о том, как открыть последний загруженный файл? У меня есть идея, что я могу добавить текущее время к моему pdfname, и поэтому оно будет уникальным. Но мое требование заключается в том, что имя PDF должно быть таким.

+0

Что произойдет, если пользователь изменит имя файла по умолчанию? IE, если я сохраню его как test.pdf, он будет открыт? Другими словами, как вы создаете значение для переменной pdfname? –

+0

Пользователь не будет изменять название pdf. В IE каждый раз он запрашивает открытое сохранение, подобное этому. Но в chrome я не вижу ничего подобного. Любой пользователь хочет, чтобы pdf выскочил после загрузки. –

ответ

1

Если вы знаете, каким будет имя базового файла (в вашем случае F90CR0010-HBR-C-4.pdf), вы можете использовать простое регулярное выражение для проверки строк строки F90CR0010-HBR-C-4\(\d+\).pdf. Если вы найдете один, то просто выяснить, какой из них имеет наибольшее число и открыть его.

Его не очень красиво, но он работает. Кроме того, технически это можно «взломать», создав собственный файл F90CR0010-HBR-C-4 (999999) .pdf, но я думаю, вам все равно.

+0

Базовое имя файла должно быть не всегда, но это будет в этом формате. Мое регулярное выражение для имени файла похоже на '[a-zA-Z] [0-9] [0-9] CR [0-9] [0-9] [0-9] [0-9] - [0 -9] [0-9] [0-9] - [0-9] [0-9] ' –

+0

Итак, как мне определить переменную' d' здесь? –

+1

Нет - \ d - класс символов регулярных выражений. Его в основном ярлык для [0-9]. Найти дополнительную информацию [здесь] (http://www.regular-expressions.info/reference.html). –

Смежные вопросы