>  기사  >  백엔드 개발  >  PHP의 양식 업로드 예 분석

PHP의 양식 업로드 예 분석

小云云
小云云원래의
2018-03-31 09:29:341883검색


이 기사에서는 주로 텍스트와 코드 형식의 PHP 양식 업로드 예제 분석을 공유하여 모든 사람에게 도움이 되기를 바랍니다.
양식 업로드: 브라우저에서 서버로 데이터. (브라우저가 서버에 요청을 보낼 때 전송됩니다.) 양식의 데이터는 두 가지 유형으로 나뉩니다. 1. 문자열 유형(바이트 스트림 인코딩, 즉 특정 인코딩 규칙이 있음)

바이너리 인코딩, 즉, 바이너리 전송만, 인코딩 규칙을 따르지 않음)

<form action=&#39;&#39; method=&#39;&#39; enctype=&#39;&#39;>
        <input type=&#39;&#39; name=&#39;&#39; value=&#39;&#39;>
</form>

                                                                사용   사용   사용   사용                      ' s ' s ' s를 통해   통해   ' ' s를 통해    통해 통해 – ‐‐‐‐‐ 인코딩할 양식 태그까지, 즉 바이너리 전송이 수행되며 인코딩 규칙은 따르지 않습니다. action 속성이 생략되면 현재 스크립트 처리를 나타냅니다. method 속성은 양식을 제출할 때 사용되는 http 메서드를 지정하며 POST 및 GET은 선택 사항입니다. (양식 데이터는 GET을 사용할 때 주소 표시줄에 표시되지만 POST에는 표시되지 않습니다.)

                      enctype 속성은 서버로 전송하기 전에 양식 데이터를 인코딩하는 방법을 지정합니다. form-urlencode(모든 문자열이 인코딩됨을 나타내는 기본 옵션), multipart/form-data(인코딩하지 않음, 파일 업로드 시 이 값을 사용해야 함), text/plain(공백은 +로 변환되지만, 특수 문자는 인코딩되지 않음)

INPUT 태그에서: t 유형 속성에는 Text(텍스트 입력), RADIO(단일 선택 버튼), Checkbox(다중 선택), submit(양식 제출), Password(비밀번호: 암호화 사용)가 포함될 수 있습니다. 양식), 파일(파일 업로드).

                                                                                 양식을 제출한 후 이름 속성이 필요합니다. 각 컨트롤은 $_GET 또는 $_POST 배열에 저장되며 name은 해당 값의 배열 첨자로 사용됩니다. ㅋㅋ    값 속성은 공백의 값을 나타냅니다. 외부 입력이 있는 경우 기본값과 동일한 외부 입력 값이 저장됩니다. 이 속성은 필수가 아닙니다.

데이터 수신

서버는 브라우저에서 데이터를 받은 후 데이터 유형에 따라 다른 처리 방법을 사용합니다.


1. 문자열 유형의 데이터는 $_GET/$_POST 변수에 저장됩니다.


2. 파일 데이터는 임시 디렉터리에 저장됩니다(스크립트 사이클 클래스에 저장되며 만료 시 자동 삭제됨)

<!DOCTYPE HTML>
<html>
	<head>
		<meta http-equiv=&#39;Content-Type&#39; content="text/html;charset=utf8"/>
	</head>
	<body>
		<form action=&#39;test.php&#39; method=&#39;POST&#39; enctype=&#39;multipart/form-data&#39;>
			用户名:<input type=&#39;text&#39; name=&#39;username&#39; ></br>
			密码:<input type=&#39;password&#39; name=&#39;password&#39;></br>
			文件上传:<input type=&#39;file&#39; name=&#39;filename&#39;></br>
			上传:<input type=&#39;submit&#39; name=&#39;submit&#39; value=&#39;submit&#39;>
		</form>
	</body>
</html>

비밀번호는 유형='password'이므로 여기에 표시되지 않습니다. 기인하다.

업로드가 성공한 후 서버 백그라운드에 지정된 스크립트에서 var_dump($_POST)를 통해 다음과 같은 결과를 얻습니다.


결과에는 문자열 데이터만 채워지며 인덱스 값은 양식 이름은 있지만 파일 데이터가 존재하지 않습니다. (시스템의 임시 파일 임시 파일에 저장되며 존재 시간은 스크립트 주기입니다.)

업로드된 파일에 대한 임시 디렉터리는 php.ini에서 구성할 수 있습니다(기본적으로 닫혀 있음). 수동으로 변경하지 않으면 서버 시스템의 기본 임시 파일 디렉터리 temp가 사용됩니다.

데이터 처리

주로 업로드된 파일을 저장합니다. (임시 파일은 스크립트 종료 후 자동으로 삭제됩니다.) O 사용 함수: move_uploaded_file (임시 저장 주소, 대상 주소)

$ _Files 배열은 업로드된 파일 정보를 저장합니다. L i 'FILENAME'은 입찰 양식에 작성된 이름 속성입니다.

2차원 배열의 name은 원본 파일 이름을 나타내고, type은 파일 형식(접미사가 아님)을 나타내며, tmp_name은 임시 저장 주소, error는 오류 유무와 오류 유형, size는 크기를 나타냅니다. 업로드된 파일의. ㅋㅋㅋ                                                                                            '               '              t t t t t t t r r rchr (문자열, 문자); 문자가 마지막으로 나타난 위치를 가져오고 해당 문자와 ​​모든 후속 문자를 출력합니다. (Strchr(문자열, 문자); 문자가 처음 나타나는 위치를 얻습니다. . . . . . . . . . . . . . . ㅋㅋ                          pathinfo (변수); 변수의 주소, 유형 및 이름을 가져옵니다. . . ㅋㅋ                                                                                              uniqID()의 이름을 지정합니다. 업로드된 파일(중복을 피하기 위해) uniqID('li_')는 생성된 문자열 앞에 li_ 접두사를 추가하는 것을 의미합니다.

관련 권장 사항:

PHP를 사용하여 양식 업로드 파일을 처리하는 방법

위 내용은 PHP의 양식 업로드 예 분석의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
이전 기사:PHP의 파일 작업 예다음 기사:PHP의 파일 작업 예