2010-02-04 5 views
25

양식을 통해 텍스트 파일을 업로드하는 경우 먼저 내용을 서버에 저장하는 대신 $ _FILES 변수에서 직접 출력 할 수 있습니까? 이 보안 위험이 있지만 로컬 컴퓨터에서만 실행됩니다.PHP가 업로드 된 텍스트 파일에서 읽습니까?

감사의 말.

감사합니다.

답변

41

업로드 된 파일은 임시 디렉토리에 저장되지만 영구적 인 장소에 저장하지 않고도 $_FILES['uploadedfile']['tmp_name']을 사용하여 읽을 수 있습니다.

if ($_FILES['uploadedfile']['error'] == UPLOAD_ERR_OK    //checks for errors 
     && is_uploaded_file($_FILES['uploadedfile']['tmp_name'])) { //checks that file is uploaded 
    echo file_get_contents($_FILES['uploadedfile']['tmp_name']); 
} 

도움이되는 링크가 http://us2.php.net/manual/en/features.file-upload.php입니다 :

file_get_contents($_FILES['uploadedfile']['tmp_name']); 

당신이 또한 파일이 오류없이 형태를하고 있음을 업로드되었는지 확인하기 위해 확인해야하지만 유효 하

+0

Doh, 나는이 모든 작업을하고 있었지만 HTML은 페이지에 표시되지 않았습니다. 나는 크롬을 사용하고 있기 때문에 뷰 소스를 클릭하면 텍스트 파일이로드되지 않은 페이지의 다시로드 된 버전이 표시됩니다. – Dan

4

불행히도, 아니요. 적어도 $ _FILES 변수를 통해서는 안됩니다. 죄송합니다.

EDIT : 항상 $ _FILES에 임시 파일로 저장되며 항상 콘텐츠 용으로 사용해야합니다.

+2

좋아요, 괜찮습니다. 대답이 나쁜 소식이라는 것을 알게되면 게시하지 않겠습니다! – Teekin

+0

이 질문에 대한 질문은 구체적으로 $ _FILES 변수에 대해 질문했기 때문에이 답변은 사실이지만 다른 답변은 게시물이 묻는 것처럼 정확하다고 생각됩니다! – Lukos

63

업로드 중 발생

+1

안녕하세요, 왜 is_uploaded_file을 통해 파일을 확인해야합니까? 보안 문제가 있습니까? 어떤 문제가 발생할 수 있습니까? 그것을 설명하거나 게시 링크를 제공 할 수 있습니까? 고맙습니다 – Facedown

관련 문제