2017-09-11 17 views
-1

이미지 파일을 선택하고 서버에 업로드하는 코드가있는 HTML 양식이 있습니다.

또한 사용자가 서버에 업로드하는 이미지의 크기가 나올 때까지 PHP로 작성된 불완전한 코드가 있습니다.

아래의 코드 스 니펫을 살펴보십시오.

HTML 형식 번호 :

<!DOCTYPE html> 
<html> 
<body> 

<form action="upload.php" method="post" enctype="multipart/form-data"> 
    Select image to upload: 
    <input type="file" name="fileToUpload" id="fileToUpload"> 
    <input type="submit" value="Upload Image" name="submit"> 
</form> 

</body> 
</html> 

PHP 코드 1 :

PHP 코드 1
<?php 
$target_dir = "C:/xampp/htdocs/php_playground/uploads/"; 
$target_file = $target_dir . basename($_FILES["fileToUpload"]["name"]); 
$uploadOk = 1; 
$imageFileType = pathinfo($target_file,PATHINFO_EXTENSION); 
// Check if image file is a actual image or fake image 
if(isset($_POST["submit"])) { 
    $check = getimagesize($_FILES["fileToUpload"]["tmp_name"]); 
    echo "Check Value with tmp_name parameter : \n"; 
    echo "<pre>"; 
    print_r($check); 
    echo "</pre>"; 
    die; 
} 
?> 

출력은 아래와 같다 :

Check Value with tmp_name parameter : 

Array 
(
    [0] => 1536 
    [1] => 2048 
    [2] => 2 
    [3] => width="1536" height="2048" 
    [bits] => 8 
    [channels] => 3 
    [mime] => image/jpeg 
) 

PHP 코드 2 :

<?php 
    $target_dir = "C:/xampp/htdocs/php_playground/uploads/"; 
    $target_file = $target_dir . basename($_FILES["fileToUpload"]["name"]); 
    $uploadOk = 1; 
    $imageFileType = pathinfo($target_file,PATHINFO_EXTENSION); 
    // Check if image file is a actual image or fake image 
    if(isset($_POST["submit"])) { 
     $check = getimagesize($_FILES["fileToUpload"]["name"]); 
     echo "Check Value with name parameter : \n"; 
     echo "<pre>"; 
     print_r($check); 
     echo "</pre>"; 
     die; 
    } 
    ?> 
PHP 코드 2 (210)

출력은 다음과 같습니다 :

경고 : getimagesize (demo_image.jpg) : C에서 해당 파일 또는 디렉터리를 : \ XAMPP \ htdocs를 \ php_playground \ 업로드 \ 스트림을 열지 못했다 이름 매개 변수를 사용하여 라인에 8

검사 값을을 upload.php로 :

이제

, 내 질문은 내가 다른 두 개의 받고 있어요 왜 모두 위의 프로그램에서 같은 이미지를 업로드하려고 해요로 getimagesize() 함수에 대한 출력 인덱스 값을 $_FILES 배열에서 변경 하시겠습니까?

이 점에 대해 안내해주세요.

감사합니다.

답변

1

"name"을 (를) 사용하는 두 번째 코드에서 getimagesize 함수는 파일을 읽을 수 없기 때문에.

"이름은"변수는 따라서 기능은 이미지를 찾을 수 없습니다 따라서 정보를 제공하고 경고를 생성하지 못합니다 서버 측에 브라우저에서 온다 : 왜

는 여기에 있습니다. "tmp_name"은 업로드 파일이 임시 저장되는 서버 측 위치의 임시 경로입니다. 따라서 "temp_name"을 사용할 때 함수는 파일을 읽고 정보를 제공 할 수 있습니다.

자세한 내용은 $ _FILES varibale을 인쇄하여 "name"과 "tmp_name"의 차이점을 확인하십시오.

참조 번호 : http://php.net/manual/en/reserved.variables.files.php