• 카테고리

    질문 & 답변
  • 세부 분야

    프로그래밍 언어

  • 해결 여부

    미해결

똑같이 따라 했는데 왜 에러가 나는지 모르겠어요

21.03.07 19:46 작성 조회수 313

0

<?php

switch($_SERVER['REQUEST_METHOD']){
    case 'GET':
        echo <<< 'HTML'
<form action="/"         method = 'POST' enctype="multipart/form-data">
    <input type="file" name="uploads">
    <input type="submit">
</form>
HTML;
        break;
    case 'POST':
        $file = $_FILES['uploads'];
        // $pathinfo = pathinfo($file['name']);
        // $accepts = [
        //     'png', 'jpg'
        // ];
        if(is_uploaded_file($file['tmp_name'])){
            move_uploaded_file($file['tmp_name'],dirname(__FILE__).'/uploades/'.$file['name'] );
        }
        break;
    default:
        http_response_code(404);
}

답변 2

·

답변을 작성해보세요.

0

실행방법이 되게 묘하신데, php -S 를 통해 웹 서버를 켜셨는데, php test.php 명령어는 왜 입력하고 계신건가요? 웹 브라우저에서 접속하시는 것이 올바른 경로입니다. $_SERVER['REQUEST_METHOD'] 는 브라우저에서 테스트하기 위해 switch 문과 같이 작성한 것입니다. php test.php 로 하시면 의미가 없답니다.

0

$_SERVER 에서 REQUEST_METHOD 를 못 찾는 것 같습니다. php 를 구동하는  웹 서버에 따라 제공되는 키가 있고, 제공이 안 되는 키가 있을 수 있습니다. php -S 명령어를 통해 내장 서버를 실행해보시길 바랍니다. 추가적으로 move_uploaded_file() 함수에 폴더의 이름이 uploads 가 아니라 uploades 로 되어있습니다.

kspark님의 프로필

kspark

질문자

2021.03.10

답변 주셔서 감사합니다.

서버를 실행하여 에러가 사라지고, uploads 폴더명도 수정하였습니다만,

 Undefined array key "REQUEST_METHOD" 라고 나옵니다.