2013-01-09 3 views
0

다른 페이지에서 파일을 다운로드하고 로컬 컴퓨터의 특정 폴더에 저장하는 방법을 찾고 있습니다. 내가Ruby를 사용하여 Filetype 필드에서 파일을 다운로드 할 수 있습니까?

아래의 필드를 참조 루비 ​​1.9.3을 사용하고 있습니다 :

<input type="hidden" name="supplier.orgProfiles(1152444).location.locationPurposes().extendedAttributes(Upload_RFI_Form).value.filename" value="Screenshot.docx"> 

<a style="display:inline; position:relative;" href=" 

             /aems/file/filegetrevision.do?fileEntityId=8120070&cs=LU31NT9us5P9Pvkb1BrtdwaCrEraskiCJcY6E2ucP5s.xyz"> 
           Screenshot.docx 
          </a> 
:

Filetypefield

File prompt to download

EDIT 여기

하면 HTML 콘텐츠입니다 난 그냥 시도

하나 possiblity가 : HTML 콘텐츠와 추가가 https://xyz.test.com 말을하고 브라우저에서 해당 URL을 다음과 같이

https://xyz.test.com/aems/file/filegetrevision.do?fileEntityId=8120070&cs=LU31NT9us5P9Pvkb1BrtdwaCrEraskiCJcY6E2ucP5s.xyz

처럼 URL을 구성하고 배치하고 Enter 저를주는 공격하는 경우 언급 된 스크린 샷으로 파일을 다운로드 할 수있는 기회.

이제 Ruby를 통해 스크립트를 통해 할 수 있습니까?

+0

아무도 도와 줄 수 있습니까? –

답변

1

유효한 URL을 제공하지 않았기 때문에 솔루션을 테스트하기가 어렵습니다.

일반적으로 URL의 콘텐츠를 검색하는 것은 페이지인지 파일인지에 관계없이 동일합니다. 루비의 내장 OpenURI이다 빠른 경로 :

require 'open-uri' 
file = open('http://example.com').read 

저장하는 파일은 간단합니다 :

IO.binwrite('/path/to/file_to_save', file) 

binwrite를 사용하여 바이너리 데이터를 저장 발생할 수있는 모든 라인 엔드 번역을 방지 할 수 있습니다. 텍스트 데이터 사용을 위해 :

IO.write('/path/to/file_to_save', file) 

모두 IO.binwriteIO.writeIO module에 설명되어 있습니다.

+0

대화 상자를 처리 할 수 ​​있습니까? –

+0

'https://xyz.test.com/aems/file/filegetrevision.do?fileEntityId=8120070&cs=LU31NT9us5P9Pvkb1BrtdwaCrEraskiCJcY6E2ucP5s.xyz'는 다운로드 가능한 파일 링크입니다. 브라우저에 붙여 넣을 때 'enter'명령 대화 상자를 누르면 팝업이 발생합니다. 코드가 그런 방식으로 파일을 저장합니까? –

+0

브라우저의 대화 상자와 직접 인터페이스 할 수 없으며 정상적으로 처리 할 필요가 없습니다. WATIR이나 그 파생물 중 하나를 사용하지 않으면 브라우저의 GUI를 Ruby에서 사용할 수 없습니다. –

관련 문제