2012-04-20 3 views
2

다음 스크립트에서 htdocs의 tmp 폴더에 파일 업로드를 시도했지만 파일이 해당 위치로 이동하지 않습니다. 저장 위치는 어떻게 정의합니까?PHP에서 파일 저장 위치를 ​​정의하는 방법 파일 업로드

<?php 
if ($_FILES["file"]["error"] > 0) 
{ 
    echo "Error: " . $_FILES["file"]["error"] . "<br />"; 
} 
else 
{ 
    echo "Upload: " . $_FILES["file"]["name"] . "<br />"; 
    echo "Type:  " . $_FILES["file"]["type"] . "<br />"; 
    echo "Size:  " . ($_FILES["file"]["size"]/1024) . " Kb<br />"; 
    echo "Stored in: " . $_FILES["file"]["C:\xampp\htdocs\tmp"]; 
} 

답변

0

잘 게시 한 코드는 파일을 이동하지 않습니다. 당신은

move_uploaded_file ($_FILES["file"]["tmp_name"][$key], 'C:\xampp\htdocs\tmp\new_file.txt'); 
그리워

http://php.net/manual/en/function.move-uploaded-file.php

+1

알 수없는 변수 : C : \ xampp \ htdocs –

+0

의 키 : move_uploaded_file ($ _FILES [ "file"] [ "tmp_name"], 'C : \ xampp \ htdocs \ tmp \ new_file. txt '); –

1

$_FILES["file"]["C:\xampp\htdocs\tmp"] 존재해서는 안, 대신 시도 :

move_uploaded_file($_FILES['file']['tmp_name'], '/path/to/your/upload/directory/' . basename($_FILES['file']['name'])); 

베어를 염두에두고이 코드는 당신이 그대로 (그대로)를 사용하는 경우 안전하지 않은 것으로 , 파일 MIME 유형 (thepropertools)을 확인하고 최종 파일 이름을 삭제해야합니다. 적어도 최소한.

+0

mime-time이 아니라 실제 파일을 sanitize해야합니다. 그리고 mime-type 필드는 오도 할 수 있기 때문에 완전히 도움이되지 않습니다. – hakre

+0

@hakre : 혼란 스럽네요. 마임 타입을 검증해야한다고했는데 (예를 들어'image/*'의 경우 적절한 도구 (물론'finfo' /'exif_imagetype' 같은)) 그리고 (예를 들어'.htaccess' 또는'.php' 파일을 허용하지 않기 위해) 파일 이름을 삭제합니다. –

+0

@hakre : 파일 sanitizion이 필요하다고 생각하는 유일한 시나리오는 Zip 폭탄을 피하기 위해 압축 해제 대상인 압축 파일을 사용하는 것입니다.하지만 아마도 내가 말하는 것을 따르지 않을 것입니다. –

관련 문제