이 글은 주로 PHP에서 업로드된 파일 처리를 해석하는 데 관련된 정보를 소개합니다. 매우 훌륭하고 참고할 만한 가치가 있습니다. 필요한 친구가 참고할 수 있습니다.
브라우저에서 우리 자신의 정보를 편집할 때, 아바타 업로드 문제 ;도서관에서는 문서를 업로드하겠습니다...'업로드'라는 단어는 어디에나 있습니다.
php는 최고의 언어입니다(다른 언어를 사용하는 프로그래머라면 저를 때리지 마세요...). PHP는 상호 작용을 처리하는 데 자연스러운 장점이 있으며 업로드된 파일을 처리하는 강력한 기능도 갖추고 있습니다.
일반 데이터 제출과 마찬가지로 파일 업로드에도 양식이 필요합니다. 파일을 업로드하기 위한 특별한 양식을 만들어 보겠습니다.
<form enctype="multipart/form-data" action="upload_file.php" name="upload_form" method="post"> <!--MAX_FILE_SIZE必须在所有的input之前,以后要是想用上传表单,可以在form之后就写隐藏的input--> <input type="hidden" name="MAX_FILE_SIZE" value=""/> 上传的文件: <input type="file" name="userfile"/> <input type="submit" name="sub_button" value="上传文件的提交按钮"/> </form>
좋아, 이 코드 조각을 분석해 봅시다.
위 enctype은 데이터가 서버로 전송될 때 사용되는 인코딩 형식을 지정합니다. 세 가지 값을 가집니다:
MAX_FILE_SIZE 숨겨진 필드(단위는 바이트)는 파일 입력 필드 앞에 배치되어야 하며 해당 값은 파일의 최대 크기입니다. 이는 브라우저에 대한 제안이며, PHP도 이를 확인합니다. 이 장벽은 브라우저 측에서 우회될 수 있으므로 이를 사용하여 대용량 파일을 차단할 것으로 기대하지 마십시오. 그러나 최대 파일 크기는 php.ini의 post_max_size= (number)M으로 제한됩니다. 하지만 이 항목을 추가하는 것이 더 좋습니다. 그러면 사용자가 대용량 파일 업로드를 기다리다가 대용량 파일 업로드 실패를 발견하는 데 시간을 소비하는 문제를 피할 수 있습니다. 사용자가 파일 양식을 제출하면 서버가 데이터를 수락할 수 있습니다. PHP에는 파일을 처리하기 위한 전역 변수
$_FILES가 있습니다. 업로드 필드 이름이 userfile이라고 가정합니다(필드에서 마음대로 변경할 수 있음). $_FILES['userfile']['name'] 클라이언트 파일의 원래 이름입니다.
$_FILES['userfile']['type'] 파일의 MIME 유형입니다. PHP 측에서는 확인되지 않으므로 이 값이 아직 존재하지 않을 수 있습니다. $_FILES['userfile']['size'] 업로드된 파일의 크기(바이트)입니다.
$_FILES['userfile']['tmp_name'] 파일 업로드 후 서버 측에 저장되는 임시 파일 이름입니다.
$_FILES['userfile']['error'] 파일 업로드와 관련된 오류 코드입니다. 업로드가 성공하면 값은 0이 됩니다. 파일이 업로드된 후에는 기본적으로 서버의 기본 임시 디렉터리에 저장되며, php.ini의 upload_tmp_dir은 다른 경로로 설정됩니다.
여기서는 move_uploaded_file() 함수에 대해 이야기해야 합니다.
파일이 합법적으로 업로드된 파일이 아닌 경우 아무런 작업도 수행되지 않으며 move_uploaded_file()은 false를 반환합니다.
파일이 합법적으로 업로드된 파일이지만 어떤 이유로 이동할 수 없는 경우 아무 작업도 발생하지 않고 move_uploaded_file()이 false를 반환하고 경고가 발생합니다.
업로드된 파일로 인해 해당 콘텐츠가 이 시스템의 사용자나 다른 사용자에게 표시될 수 있는 경우 이러한 종류의 확인이 특히 중요합니다.
다음은 PHP로 파일을 업로드하는 예입니다.
<b>上传文件处理</b> <?php if (isset($_FILES['userfile'])) { $uploaddir = 'upload/'; $uploadfile = $uploaddir . basename($_FILES['userfile']['name']); echo '<pre class="brush:php;toolbar:false">'; if (move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile)) { echo '上传文件成功'.'<br>'; } else { echo '上传文件失败'.'<br>'; } echo '这是上传文件的一些信息:' . '<br>'; print_r($_FILES); echo '<pre class="brush:php;toolbar:false">'; die(); } ?> <b>上传表单</b> <!--表单中的enctype属,必须和以下定义保持一致--> <form enctype="multipart/form-data" action="upload_file.php" name="upload_form" method="post"> <!--MAX_FILE_SIZE必须在所有的input之前,以后要是想用上传表单,可以在form之后就写隐藏的input--> <input type="hidden" name="MAX_FILE_SIZE" value=""/> 上传的文件: <input type="file" name="userfile"/> <hr/> <input type="submit" name="sub_button" value="上传文件的提交按钮"/> </form>
관련 추천:
php
헤더 기능을 기반으로 다양한 파일을 다운로드하는 방법 단일 파일 및 여러 파일 업로드 처리 공유 예위 내용은 PHP에서 업로드된 파일 처리 문제의 예에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!