파워빌더의 경우 파일다운로드로 검색시 ftp를 사용하여 다운로드하는 소스가 많이 있습니다.
FTP를 통해 다운로드 할 경우 윈도우 방화벽 및 각종 방화벽에 예외 처리를 해야 되기 때문에 프로그램 개발 완료 후 에도 방화벽 예외 처리 이슈가 발생합니다.
그래서 방화벽 예외 처리 없이 다운로드 하는 방법을 알게되어 공유 해 볼 까 합니다.
1. urlmon.dll을 사용합니다.
위 파일은 윈도우 시스템 파일에 있습니다. (전 검색을 통해서 확보했습니다.)
2. Local External Functions 아니 Global External Functions중 용도에 맞게 아래 구분을 선언합니다.
Function long URLDownloadToFileA (Long Caller,String URL,String FileName,Long Reserved,Long lpfnCB) Library
"urlmon.dll" Alias For "URLDownloadToFileA"
위 구분이 정상 작동하지 않을 경우 아래와 같이 Ansi 옵션을 추가하세요
Function long DeleteUrlCacheEntry(string lpszUrlName) library "Wininet.dll" alias for "DeleteUrlCacheEntry;Ansi"
Function long URLDownloadToFileA (Long Caller,String URL,String FileName,Long Reserved,Long lpfnCB) Library
"urlmon.dll" Alias For "URLDownloadToFileA;Ansi"
3. 다운로드 방법 샘플 소스
Integer li_rtn
li_rtn = URLDownloadToFileA(0, 'http://url/파일명', 'C:\파일명', 0, 0)
if li_rtn = 0 then
//캐쉬삭제를 안할 경우 캐쉬에있는 파일을 다운 받아 정상적인 다운이 안될 수 있음
DeleteUrlCacheEntry('http://url/파일명'); //캐쉬삭제 (2020.07.20 추가)
MessageBox('알림','다운로드 성공')
else
MessageBox('알림','오류발생')
end if
4.기타
파일이 한글명일 경우 오류가 발생하는경우가 있다고 합니다. (전 한글파일이 없어서 패스^^)
도움이 되셨다면 로그인 없이 가능한
아래 하트♥공감 버튼을 꾹 눌러주세요!
파워빌더 WINAPI 활용하여 Excel, PDF 등 연결 프로그램으로 열기 (0) | 2021.07.19 |
---|---|
파워빌더 DataWindow 틀고정 방법 (0) | 2020.11.17 |
파워빌더에서 Post로 전송하는 방법2가지 (0) | 2019.11.08 |
Mysql DB에 Powerbuilder 로 접속하기 (0) | 2017.08.31 |
PHP - Excel 내려받기 (0) | 2017.08.14 |
Blog is powered by kakao / Designed by 미스터짱