2012-09-28 3 views
1

아래는 IE 9에서 PHP를 사용하여 파일을 업로드 내 코드입니다 - 윈도우 7PHP - IE 9에서 파일 업로드 - 윈도우 7

갖는 문제 업로드 프로세스를 파일 관련 - 동일한 코드가 다른 브라우저

에서 작동

인 test.html

<html> 
<head> 
<title>File Uploading Form</title> 
</head> 
<body> 
<h3>File Upload:</h3> 
Select a file to upload: <br /> 
<form action="uploader.php" method="post" 
enctype="multipart/form-data"> 
<input type="file" name="file" size="50" /> 
<br /> 
<input type="submit" value="Upload File" /> 
</form> 
</body> 
</html> 

Uploader.php

<?php 

if($_FILES['file']['name'] != "") { print_r($_FILES); copy($_FILES['file']['name'], "/var/www/html/php/uf") or die("Could not copy file!"); 

} else { die("No file specified!"); } ?> 
+1

더 안전 move_uploaded_file를 사용하여 copy() 사용하지 마십시오? "지정한 파일이 없습니다!" 오류? –

+0

Windows Installed Drive를 사용하는 경우 드라이브/디렉토리를 변경하십시오. 업로드 폴더에 대한 모든 권한을 부여하십시오. –

답변

1

시도해보십시오.

파일을 서버에 업로드 된 때, 실제 경로, NOT $_FILES['file']['name']$_FILES['file']['tmp_name']입니다, 그리고 당신이 때 당신이보고있는 무엇

<?php 

if(!empty($_FILES)) { 

     if(is_uploaded_file($_FILES['file']['tmp_name'])){ 
      $tmp_name = $_FILES['file']['tmp_name']; 
      $new_name = "/var/www/html/php/uf/".$_FILES['file']['name']; 
      if(!move_uploaded_file($tmp_name, $new_name)){ 
       exit('Could not move the file'); 
      } 

     }else{ 
      exit('not uploaded file'); 
     } 
     //copy($_FILES['file']['name'], "/var/www/html/php/uf") or die("Could not copy file!"); 
     //DO NOT use copy for uploaded file , it's unsafe. 

} else { 
    exit("No file specified!"); 
} 
?> 
+0

'move_uploaded_file'이'copy'보다 더 안전한 이유는 무엇입니까? 그냥 궁금해서, 전에는 들어 본 적이 없으니까. – Vulcan

+3

@ Vulcan 첫 번째 매개 변수가 유효한 업로드 파일이 아닌 경우 아무 작업도 수행되지 않고 move_uploaded_file()은 FALSE를 반환합니다. copy()를 사용하면, 이것을 체크하지 않고 그냥 목적지를 복사하고 덮어 씁니다. 첫 번째 매개 변수를 "/ etc/passwd"로 설정하면이 업로드 된 파일을 방문하면/etc/passwd의 소스를 얻을 수 있습니다. –

+0

감사합니다. 내 코드 일부를 업데이트해야 할 수도 있습니다. – Vulcan