HTML代码上传文件:
<form action="doAction.php" method="post" enctype="multipart/form-data">
<input type="hidden" name="MAX_FILE_SIZE" value="51200" />
请选择上传文件:<input type="file" name="myFile" /><br />
<input type="submit" value="上传" />
doAction.php文件代码:
<meta charset="utf-8">
<?php
//files
//print_r($_FILES);
$filename=$_FILES['myFile']['name'];
$type=$_FILES['myFile']['type'];
$tmp_name=$_FILES['myFile']['tmp_name'];
$error=$_FILES['myFile']['error'];
$size=$_FILES['myFile']['size'];
//判断下错误信息
if($error==UPLOAD_ERR_OK) {
//需要判断下文件是否是通过HTTP POST方式上传
//is_uploaded_file($tmp_name,$destination);
//$destination="uploads/".$filename;
$destination="uploads/".$filename;
if(is_uploaded_file($tmp_name)) {
if(move_uploaded_file($tmp_name,$destination)) {
$mes="文件上传成功";
}else {
$mes="文件移动失败";
}
}else {
$mes="文件不是通过HTTP POST方式上传上来的";
}
}else {
switch($error) {
case 1:
$mes="超过了配置文件上传文件的大小"; // UPLOAD_ERR_INI_SIZE
break;
case 2:
$mes="超过了表单设置上传文件的大小"; // UPLOAD_ERR_FORM_SIZE
break;
case 3:
$mes="文件部分被上传"; // UPLOAD_ERR_PARTIAL
break;
case 4:
$mes="没有文件被上传"; // UPLOAD_ERR_NO_FILE
break;
case 6:
$mes="没有找到临时目录"; // UPLOAD_ERR_NO_TMP_DIR
break;
case 7:
$mes="文件不可写"; //UPLOAD_ERR_CANT_WRITE
break;
case 8:
$mes="由于扩展文件中断了文件上传"; // UPLOAD_ERR_EXTENSION
break;
}
}
echo $mes;
//服务器端进行的配置 是在配置环境中php.ini中的配置
//file_uploads = On 支持通过HTTP POST方式上传文件
//;upload_tmp_dir = 临时文件保存目录
//upload_max_filesize = 2M 默认值是2M,上传的最大大小是2M
//post_max_size = 8M 表单以POST方式发送数据的最大值,默认8M
//客户端进行配置
//<input type="hidden" name="MAX_FILE_SIZE" value="1024" /> 这里就是case 2判断是否错误的类型
//<input type="file" name="myFile" accept="文件的MIME类型,..."/>
但是需要注意的是:<input type="hidden" name="MAX_FILE_SIZE" value="1024" />在客户端限制的文件大小,懂程序的人来说,这些只要打开F12调试工具,稍微修改就大小就没用了,所以限制文件以及大小必须在服务器上进行限制。