2013-06-06 2 views
1

다운로드 단추가있는 JSP 폼이 있습니다. 사용자가 해당 단추를 클릭하면 pdf 파일을 다운로드하고 팝업합니다. 크롬 브라우저를 사용하고 있습니다. 내 다운로드 위치는최신 다운로드 파일을 여는 방법

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에서는 매번 그런 오픈 저장을 요구합니다.하지만 크롬에서는 그와 같은 것을 보지 못합니다. 어쨌든 사용자는 다운로드 후 pdf가 팝업되기를 원합니다. –

답변

1

기본 파일 이름 (귀하의 경우 F90CR0010-HBR-C-4.pdf)을 알면 간단한 정규식을 사용하여 F90CR0010-HBR-C-4\(\d+\).pdf 형식의 문자열을 확인할 수 있습니다. 하나를 찾으면 가장 큰 번호를 가진 번호를 찾아서 열어주세요.

정말 예쁘지 않지만 작동합니다. 또한, 기술적으로 이것은 "F90CR0010-HBR-C-4 (999999) .pdf"라는 파일을 만들어 "해킹"될 수 있지만, 정말로 신경 쓰지는 않을 것입니다.

+0

기본 파일 이름은 항상 그럴 필요는 없습니다.하지만 그 형식으로되어있을 것입니다. 파일명에 대한 나의 regex 패턴은'[a-zA-Z] [0-9] [0-9] CR [0-9] [0-9] [0-9] [0-9] - [0 -0] [0-9] [0-9] - [0-9] [0-9]' –

+0

여기서 변수'd'는 어떻게 정의해야합니까? –

+1

아니오 - \ d는 정규식 문자 클래스입니다. 기본적으로 [0-9]의 바로 가기입니다. 자세한 정보는 [여기] (http://www.regular-expressions.info/reference.html)에서 찾으십시오. –