UPLOAD_ERR_OK 其值为 0,没有错误发生,文件上传成功。 UPLOAD_ERR_INI_SIZE 其值为 1,上传的文件超过了 php.ini 中 upload_max_filesize 选项限制的值。 UPLOAD_ERR_FORM_SIZE 其值为 2,上传文件的大小超过了 HTML 表单中 MAX_FILE_SIZE 选项指定的值。 UPLOAD_ERR_PARTIAL 其值为 3,文件只有部分被上传。 UPLOAD_ERR_NO_FILE 其值为 4,没有文件被上传。 UPLOAD_ERR_NO_TMP_DIR 其值为 6,找不到临时文件夹。PHP 4.3.10 和 PHP 5.0.3 引进。 UPLOAD_ERR_CANT_WRITE 其值为 7,文件写入失败。PHP 5.1.0 引进。 代码示例: <?php if($_FILES['userfile']['error']>0)//当$_FILES['userfile']['error']=0时没有错误,文件上传成功 { echo "Problem:"; switch($_FILES['userfile']['error']) { case 1: echo "上传的文件超过了upload_max_file限制的值"; break; case 2: echo "上传的文件超过了html表单中max_file_size指定的值"; break; case 3: echo "文件只有部分被上传"; break; case 4: echo "没有文件被上传"; break; case 6: echo "找不到临时文件夹"; break; case 7: echo "文件写入失败"; break; } exit; } ?> 加上下面的代码组成整个上传文件的php <?php //判断上传文件类型 if($_FILES['userfile']['type'] != 'text/plain') //if($_FILES['userfile']['type'] != 'image/jpeg') { echo "problem: file is not plain text"; exit; } // $upfile = $_SERVER['DOCUMENT_ROOT'].$_FILES['userfile']['name']; //is_uploaded_file()如果$_FILES['userfile']['tmp_name'] 所给出的文件是通过 HTTP POST 上传的则返回 TRUE。这可以用来确保恶意的用户无法欺骗脚本去访问本不能访问的文件 if(is_uploaded_file($_FILES['userfile']['tmp_name'])) { //本函数检查并确保$_FILES['userfile']['tmp_name']指定的文件是合法的上传文件(即通过 PHP 的 HTTP POST 上传机制所上传的)。如果文件合法,则将其移动为由$upfile指定的文件。 if(!move_uploaded_file($_FILES['userfile']['tmp_name'],$upfile)) { echo "problem: could not move file to destination directory"; exit; } } else { echo "problem: possibel file upload attack. Filename:"; echo $_FILES['userfile']['name']; exit; } echo "file upload seccessfully <br><br>"; // $contents = file_get_contents($upfile);//file_get_contents() 函数把整个文件读入一个字符串中。 $contents = strip_tags($contents);//strip_tags该函数尝试返回给定的字符串 $contents去除空字符、HTML 和 PHP 标记后的结果 file_put_contents($_FILES['userfile']['name'],$contents);//file_put_contents() 函数把一个字符串写入文件中 //show what was uploaded echo "<p>preview of uploaded file contents:<br><hr/>"; echo nl2br($contents);//nl2br() 函数在字符串中的每个新行 (\n) 之前插入 HTML 换行符 (<br />)。 echo "<br><hr/>"; ?> |
|