웹이미지를 로컬에 저장하는 방법은 크게 네가지가 있을수 있다.
1. javaIO, NIO 로 읽어서 저장하기
2. ftp(file transfer protocol) 로 다운받기
3. 캡쳐 이미지 생성후 javaIO,NIO 로 읽어서 저장하기
4. 해킹
사실상 불특정 url 일경우 파일권한 또는 폴더 권한때문에 1번은 안될 확률이 많고
2번또한 ftp 계정을 알아야 가능 하다. 계정을 알아도 해당 계정에 대한 퍼미션이 문제가 될수 도 있다.
4 번은 잘모르겟어서
3 번으로 도전
loadWebImage() 함수를 호출 해서 이미지를 버퍼에 담고 saveByteBufferImage() 전달하여
저장한다.
/**
* 웹에서 이미지 받아서 바이트 버퍼에 담은후 saveByteBufferImage 함수를호출 이 * 미지 저장후 경로 리턴 받기
* 작성자 : 어셈블링블링
* @param imageUrl
* @param fileName
* @param sftpClient
* @return
*/
protected String loadWebImage(String imageUrl, String fileName,String type, FileUploadSFTPClient sftpClient) {
String serverImagePath = null;
//자바 http 파싱 라이브러리 jsoup 를 이용 이미지를 바이트에 배열에 담는다.
try {
byte[] bytes = Jsoup.connect(imageUrl)
.ignoreContentType(true)
.userAgent("Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:25.0) Gecko/20100101 Firefox/25.0")
.referrer("http://www.google.com")
.timeout(12000)
.followRedirects(true)
.execute().bodyAsBytes();
//바이트 버퍼로 옮기기
ByteBuffer buffer = ByteBuffer.wrap(bytes);
//이미지 파일저장 하고 경로 리턴 받기
serverImagePath = saveByteBufferImage(buffer, TEMP_LOCAL_IMAGE_PATH, fileName , type, sftpClient);
} catch (IOException e) {
e.printStackTrace();
}
return serverImagePath;
}
이제 바이트 버퍼에 담겨있는 데이터를 자신이 원하는 경로에 저장하면된다.
saveByteBufferImage() 함수는 보안상 공개 하지 않겟다. 퍼갈때 댓들 들좀 달아주삼.
2016년 12월 25일 일요일
피드 구독하기:
댓글 (Atom)
[oracle]백업및 복구
[oracle]백업및 복구 오라클 덤프 백업및 복구 윈도우 서버 기반 간단 정리 --디렉터리 조회 sqlplus 또는 dbtool 입력시작 SELECT * FROM DBA_DIRECTORIES ; --D:...
-
수십대의 서버에 특정 쉘을 실행한다거나 파일을 수정해야할경우 호스트 입력 아이디 입력 패스워드 입력은 여간 짜증나는일이 아닐수 없다. 이를 한방에 해주는 방법 teraterm 를 설치한다( putty 는 버리자 ) 예를 들면 19...
-
pom.xml <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi</artifactId...
-
notice_state 란 이름의 체크박스가 있다 가정하고 $("input[name=notice_state]").bind("click",false); 끝.
댓글 없음:
댓글 쓰기