PC에서 Linux 서버로 파일을 업로드하는 perl CGI 스크립트가 있습니다.Perl HTML 파일 업로드 문제. 파일의 크기가 0입니다.
내 HTML 양식으로 CGI 호출을 작성한 다음 실행하면 정확하게 작동하지만 기존 응용 프로그램에 동일한 호출을 넣으면 파일은 서버에 작성되지만 가져 오지는 않습니다 데이터는 크기가 0입니다.
필자는 %ENV
에서 추출 할 수있는 환경 변수를 비교 했으므로 아무런 이유가없는 것으로 보입니다. 실제로 기존의 응용 프로그램에서 사용하고 있던 값으로, 내 자신의 HTML 스크립트에서 ENV를 여러 번 변경해 보았습니다. 문제가 드러나지 않았습니다.
로그의 아무 것도 나에게 단서를주지 못합니다. 업로드 작업은 성공이라고 생각합니다. 두 테스트에서 사용자가 동일합니다. 권한이 문제라면 서버에 파일이 생성되지 않습니다.
결과는 Chrome에서와 동일합니다 (응용 프로그램 내에서가 아니라 내 자신의 HTML 스크립트에서 작동).
비교할 특정 설정은 무엇입니까? 응용 프로그램 내부에서 실행하는 경우,
if (open(UPLOADFILE, ">$upload_dir/$fname")) {
binmode UPLOADFILE;
while (<$from_fh>) {
print UPLOADFILE;
}
close UPLOADFILE;
$out_msg = "Done with Upload: upload_dir=$upload_dir fname=$fname";
}
else {
$out_msg = "ERROR opening for upload: upload_dir=$upload_dir filename=$filename";
}
내가
- 그것은 while 루프를 입력하지 않는지 확인 않았다
이
업로드 코드입니다. - 내 자신의 HTML 스크립트에서 호출 될 때 while 루프를 입력합니다.
$from_fh
의 값은 두 실행에 대해 동일합니다. 아래 블록에서 사용되는 모든 값은 두 실행에서 모두 동일합니다.
어디에서'$ from_fh'을 가져 오나요? 그것은 당신이 그 값이 두 환경에서 모두 동일해야하고 다른 것이어야하고 GLOB (0x90c06c)와 같은 것이라고 말할 것을 걱정합니다. – Borodin
그래서 Windows PC에서 웹 브라우저를 실행하고 업로드하고 싶습니다 웹 서버를 실행중인 Linux 시스템에 해당 PC에있는 파일? – Borodin