POST �����ϴ�

�����Կ���ʹ�û��ϴ��ı��Ͷ������ļ����� PHP ����֤���ļ�����������������ȫ����������Щ���ϴ��Լ��ļ��ϴ�����������

PHP �ܹ������κ����Է��� RFC-1867 ��׼������������� Netscape Navigator 3 �����߰汾�����˲����� Microsoft Internet Explorer 3 ���߸��߰汾���ϴ����ļ���

Note: ��ص�����

����� php.ini �� file_uploads��upload_max_filesize��upload_tmp_dirpost_max_size �Լ� max_input_time ����ѡ�

��ע�� PHP Ҳ֧�� PUT �������ļ��ϴ���Netscape Composer �� W3C �� Amaya �ͻ���ʹ�����ַ������������ PUT ������֧���Ի�ȡ������Ϣ��

Example #1 �ļ��ϴ���

�������½���һ������ı���֧���ļ��ϴ���

<!-- The data encoding type, enctype, MUST be specified as below -->
<form enctype="multipart/form-data" action="__URL__" method="POST">
    <!-- MAX_FILE_SIZE must precede the file input field -->
    <input type="hidden" name="MAX_FILE_SIZE" value="30000" />
    <!-- Name of input element determines name in $_FILES array -->
    Send this file: <input name="userfile" type="file" />
    <input type="submit" value="Send File" />
</form>

���Ϸ����е� __URL__ Ӧ�ñ�������ָ��һ����ʵ�� PHP �ļ���

MAX_FILE_SIZE �����ֶΣ���λΪ�ֽڣ���������ļ������ֶ�֮ǰ����ֵΪ�����ļ������ߴ硣���Ƕ��������һ�����飬PHP Ҳ��������������˿��Լ��ƹ������ã���˲�Ҫָ���ô��������赲���ļ���ʵ���ϣ�PHP �����е��ϴ��ļ����ֵ�Dz���ʧЧ�ġ�������û����ڱ��м��ϴ���Ŀ����Ϊ�����Ա����û��ڻ�ʱ��ȴ��ϴ����ļ�֮��ŷ����ļ������ϴ�ʧ�ܵ��鷳��

Note:

Ҫȷ���ļ��ϴ����������� enctype="multipart/form-data"�������ļ��ϴ����ˡ�

ȫ�ֱ��� $_FILES �� PHP 4.1.0 ����ڣ��ڸ���İ汾���� $HTTP_POST_FILES �����������������������ϴ����ļ���Ϣ��

���Ϸ����� $_FILES ���������������ʾ�����Ǽ����ļ��ϴ��ֶε�������������ʾ��Ϊ userfile�����ƿ�����������

$_FILES['userfile']['name']

�ͻ��˻����ļ���ԭ���ơ�

$_FILES['userfile']['type']

�ļ��� MIME ���ͣ����������ṩ����Ϣ�Ļ���һ��������"image/gif"�������� MIME ������ PHP �˲�����飬��˲�Ҫ�뵱Ȼ��Ϊ�����ֵ��

$_FILES['userfile']['size']

���ϴ��ļ��Ĵ�С����λΪ�ֽڡ�

$_FILES['userfile']['tmp_name']

�ļ����ϴ����ڷ���˴������ʱ�ļ�����

$_FILES['userfile']['error']

�͸��ļ��ϴ���ص��������������Ŀ���� PHP 4.2.0 �汾�����ӵġ�

�ļ����ϴ���Ĭ�ϵػᱻ���浽����˵�Ĭ����ʱĿ¼�У����� php.ini �е� upload_tmp_dir ����Ϊ������·��������˵�Ĭ����ʱĿ¼����ͨ������ PHP ���л����Ļ������� TMPDIR ���������ã������� PHP �ű��ڲ�ͨ������ putenv() �����������Dz������õġ��û�������Ҳ��������ȷ�������IJ���Ҳ�����ϴ����ļ��Ͻ��еġ�

Example #2 ʹ�ļ��ϴ���Ч

����ĺ��� is_uploaded_file() �� move_uploaded_file() �Ի�ȡ��һ������Ϣ�����·��������ɱ��ṩ���ļ��ϴ���

<?php
// In PHP versions earlier than 4.1.0, $HTTP_POST_FILES should be used instead
// of $_FILES.

$uploaddir '/var/www/uploads/';
$uploadfile $uploaddir basename($_FILES['userfile']['name']);

echo 
'<pre>';
if (
move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile)) {
    echo 
"File is valid, and was successfully uploaded.\n";
} else {
    echo 
"Possible file upload attack!\n";
}

echo 
'Here is some more debugging info:';
print_r($_FILES);

print 
"</pre>";

?>

�����ϴ��ļ��� PHP �ű�Ϊ�˾���������Ҫ�Ը��ļ�������Щ������Ӧ��ʵ���κ��߼��ϱ�Ҫ�ļ�顣��������� $_FILES['userfile']['size'] �������ų�������С���ļ���Ҳ����ͨ�� $_FILES['userfile']['type'] �������ų��ļ����ͺ�ij�ֱ�׼������ϵ��ļ�����ֻ���������һϵ�м���еĵ�һ������Ϊ��ֵ��ȫ�ɿͻ��˿��ƶ��� PHP �˲�����顣�� PHP 4.2.0 �𣬻�����ͨ�� $_FILES['userfile']['error'] ���������ݲ�ͬ������������ƻ���һ����δ�������������Ҫô�����ļ�����ʱĿ¼��ɾ����Ҫô�����ƶ��������ĵط���

�������û��ѡ���ϴ����ļ����� PHP ���� $_FILES['userfile']['size'] ��ֵ��Ϊ 0��$_FILES['userfile']['tmp_name'] ��Ϊ�ա�

������ļ�û�б��ƶ��������ط�Ҳû�б�����������ļ����ڱ��������ʱ��ɾ����

Example #3 �ϴ�һ���ļ�

PHP �� HTML ������������֧���ļ����͡�

<form action="" method="post" enctype="multipart/form-data">
<p>Pictures:
<input type="file" name="pictures[]" />
<input type="file" name="pictures[]" />
<input type="file" name="pictures[]" />
<input type="submit" value="Send" />
</p>
</form>
<?php
foreach ($_FILES["pictures"]["error"] as $key => $error) {
    if (
$error == UPLOAD_ERR_OK) {
        
$tmp_name $_FILES["pictures"]["tmp_name"][$key];
        
$name $_FILES["pictures"]["name"][$key];
        
move_uploaded_file($tmp_name"data/$name");
    }
}
?>