파일 업로드 AJAX를 통해 할 수있는 대단히 감사합니다 - 당신은 오래된 브라우저를 지원해야하는 경우, jQuery-File-Upload과 같이 사용, 그것은 바로 업로드 부분을 어떻게 사용에 a good tutorial here이를, Blueimp의 UI를 사용하지 마십시오.) 질문의 "수동으로 양식을 제출하지 않고"와 관련이 있습니다. 파일을 선택하기 위해 파일 업로드 요소와 상호 작용해야하며, 여기서는 page.uploadFile()
을 사용합니다.
"페이지의 요소와 상호 작용하지"않고 JavaScript 만 사용하려면 page.evaluate()를 사용하여 일부 맞춤 JavaScript를 실행할 수 있습니다. 그런 다음 File Reader API을 사용하여 로컬 디스크에서 파일을 찾고 blob에 저장 한 다음 AJAX에 해당 BLOB를 업로드 할 수 있습니다. PhantomJS의 WebKit (Chrome 13에 해당)은 Chrome 6 이후 FileReader API가 있었던 것처럼 작동합니다.
(BTW, 헤드리스 스크립트를 사용하여 파일을 서버에 업로드하는 것이 좋습니다. , PhantomJS는 잔인하며 curl
을 사용할 수 있습니다. 그러나 다른 이유로 PhantomJS를 사용하고 싶다고 가정합니다!)
어떤 해결책이 있습니까? – themiurgo
@Ros - 가능한 답의 시작이있는 것처럼 보였습니다. 결론을 더 명확하게 말하기 위해 다시 말할 수 있는지 확인하십시오. –