�����Կ���ʹ�û��ϴ��ı��Ͷ������ļ����� 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�����ƿ�����������
�ͻ��˻����ļ���ԭ���ơ�
�ļ��� MIME ���ͣ����������ṩ����Ϣ�Ļ���һ��������"image/gif"�������� MIME ������ PHP �˲�����飬��˲�Ҫ�뵱Ȼ��Ϊ�����ֵ��
���ϴ��ļ��Ĵ�С����λΪ�ֽڡ�
�ļ����ϴ����ڷ���˴������ʱ�ļ�����
���ļ��ϴ���ص��������������Ŀ���� 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");
}
}
?>