필자는 Perl로 단일 "파일"유형 업로드 필드와 하나의 제출 버튼을 포함하는 웹 양식을 표시하는 간단한 웹 서비스를 작성했습니다. 나는이 간단한 웹 페이지를 인간이 사용할 수있는 의도로 만들었으며 또한 다른 기계의 스크립트도 프로그래밍 방식으로 실행할 수 있다고했습니다. 나는 인간의 모든 부분을 다 수행하고 테스트했는데 이제는 첫 번째 시스템에서이 cgi 스크립트를 성공적으로 실행하는 두 번째 시스템에서 URL을 생성하는 방법을 알지 못한다는 사실을 깨달았습니다 (두 번째 시스템에서 첫 번째 기계)."파일"형식 업로드 입력 필드가 포함 된 CGI 스크립트 양식을 프로그래밍 방식으로 실행하는 방법?
양식 필드가 포함 된 URL을 구성하는 데 경험이 있지만 이전에 "파일"유형의 업로드 입력 필드를 사용한 적이 없으므로 다소 어려움을 겪고 있습니다. 어쩌면 내가 잘못 사용했을 수도 있습니다.
내 간단한 웹 서비스가 "myscript.pl"이라는 cgi-bin 스크립트이고 파일 업로드 필드가 "uploadthis"라고되어 있고 프로그래밍 방식으로 업로드하려는 두 번째 시스템의 파일이 " C : \ myfile.txt "이면 두 번째 컴퓨터의 스크립트에서"http://machine1/cgi-bin/myscript.pl?uploadthis=C : \ myfile.txt "라는 URL을 생성 할 수 없어야하며, 그 파일은 마치 인간이 가지고있는 것처럼 프로그래밍 방식으로 업로드됩니다. 웹 양식의 찾아보기 버튼을 수동으로 클릭하고 해당 파일을 선택하고 제출 버튼을 클릭 했습니까?
첫 번째 컴퓨터에서 cgi 스크립트 양식을 가져 와서 파일을 찾아 제출을 클릭하면 수동으로 올바르게 작동합니다. 파일은 웹 브라우저에서 업로드 한 것 같습니다. 그러나 위 URL을 다른 브라우저의 스크립트에 프로그래밍하기 전에 파일 업로드 URL을 수동으로 테스트하기 위해 브라우저에 위 URL을 입력하면 업로드되는 파일의 길이는 0입니다. 파일을 생성하지만 완전히 비어 있습니다. "http://machine1/cgi-bin/myscript.pl?uploadthis=C : \ myfilethatdoesntexist.txt"와 같이 알려진 잘못된 파일 이름을 사용하면 동일한 결과가 나타납니다. 내가 도대체 뭘 잘못하고있는 겁니까?
저는이 작업을 Apache 2.2 및 ActivePerl 5.10.0이 적용된 몇 대의 Windows XP PC에서 수행하려고하며 양식 방법은 "게시"입니다.