2017-04-18 9 views
0

file://///3.24.116.965/dsaspdata/Dev/hotdocs/docs/12rsocz2q4.docx을 다운로드해야하며 브라우저에 붙여 넣으면 워드 문서가 열립니다. 이런 PHP 스크립트로 자동화하고 있습니다. - shell_exec("wget file://///3.24.116.965/dsaspdata/Dev/hotdocs/docs/12rsocz2q4.docx -O /tmp/batch_test/final_remu.docx");내부 리소스 또는 파일 starling 파일을 다운로드하려면 어떻게합니까 : //// wget in PHP를 사용합니까?

file://///이 인식되지 않기 때문에 분명히 작동하지 않습니다.

어떤 형식으로 입력해야합니까? shell_exec? `

+0

'wget' 대신 파일 복사 명령을 내릴 수는 없습니까? – David

+0

@David 이런 식으로 http://php.net/manual/en/function.readfile.php라고 말하고 싶지만 서버 파일 시스템에 다운로드해야했습니다. –

+1

아니요, 다음과 같은 의미입니다 : https://secure.php.net/manual/en/function.copy.php 파일을 "다운로드"하려고하는데 파일 시스템에 있고 파일 시스템에 있지 않습니다. 웹 서버. 파일 시스템 작업을 사용하여 복사 할 수 있어야합니다. – David

답변

1

wget은 웹 클라이언트이므로 HTTP 요청을위한 것입니다.

//3.24.116.965/dsaspdata/Dev/hotdocs/docs/12rsocz2q4.docx 

(. 그것은 네트워크 마운트 된 파일 시스템 일 수있다, 그러나 그것은 PHP에 다른 작은한다)

대신하려고 :하지만이, 그것은 파일 시스템 위치는 HTTP 위치에 있지 않습니다 파일을 "다운로드"하고 파일 시스템 작업처럼 취급하고 copy the file instead. 뭔가 같은 :.

copy("//3.24.116.965/dsaspdata/Dev/hotdocs/docs/12rsocz2q4.docx", "/tmp/batch_test/final_remu.docx") 

(난 다소 그 첫 번째 인수의 정확한 파일 위치 형식에 추측, 그대로는 희망이 작품에 좀 녹슨 해요,하지만 그것은 필요할 수 있습니다 작은 조정.

+0

다른 문제가 발생했습니다. 리눅스 서버에서 이것은 작동하지 않습니다 -'@copy ("file : ///// \\ 3.24.758.299 \ dsaspdata \ Dev \ hotdocs \ docs \ 1981te2z6w.docx", "/me_data/tmp/42098/disclouser42098.doc ")'그것은 오류를주지 않는 파일을 복사하지 않습니다. 나는 URL 앞에'file : /////'을 제거하려고 시도했다. 여전히 결과는 같습니다. 모든 단서 pls. –

+0

Windows + xampp에서 실행되지만 Linux 서버에서 작동하지 않는 경우이 작업이 정상적으로 작동합니다 (그에 따라 대상 경로가 변경됨). @copy ('file : //// \\ 3.24.758.299 \ dsaspdata \ Dev \ hotdocs \ docs \ 1981te2z6w.docx', '/me_data/tmp/1981te2z6w.docx');' –