批改状态:合格
老师批语:
<?php/*** 文件读取:* r:从头开始读取文件* w:没有就创建,有就删除文件类容,从头开始写* a:没有就创建,从文件末尾开始写* b:默认** 写的时候不能读,不能够看文件是否存在,读的时候不能写** 函数:* 1.打开函数:* fopen(filename,model)** 2.读写* 写:* fwrite(resoure,data,length)* fputs(resoure,data,length)** 读:* $ char = fgetc($fp)* $string = fgets($fp)* feof($fp):是否读取到文件末尾* $arr =file(文件名)* feof* 3.关闭* fcloce(resoure)* 4.其他函数* 文件是否存在:$int = file_exists(文件名)* 确定文件大小: $int = filesize(文件名)* unlink(文件名)*/$fp = fopen('./text.txt','w');$arr = [1,2,3,4,5];fwrite($fp,$arr,100);fclose($fp);$arr = file('./text.txt');print_r($arr);unlink('text.txt');
函数:in_array($a,$arr); isset($a);
is_uploaded_file(tmp文件名) ; move_uploaded_file($tmp文件, 目标文件) ;
```php
<?php
/**
- $_FILE[文件名][name]
- $_FILE[文件名][type]
- $_FILE[文件名][tmp_name]
- $_FILE[文件名][error]
- $_FILE[文件名][size]
判断文件是否是通过HTTPPOST上传的。- 如果 filename 所给出的文件是通过 HTTP POST 上传的则返回 TRUE。
*- pathinfo($tmp_name):返回文件相关信息
- [dirname]
- [basename]
- [extension]
- [filename]
*/
if(isset($_FILES))
{
printf(‘<pre>%s</pre>‘, print_r($_FILES, true));
$fileName = $_FILES[‘my_pic’][‘name’];
$tmp_name = $_FILES[‘my_pic’][‘tmp_name’];
if ($_FILES[‘my_pic’][‘error’] > 0) {} else {
$tip = '<span style="color: brown">上传错误</span><br>';switch ($_FILES['my_pic']['error']) {case 1:$tip .= '超过PHP.ini中允许上传的最大文件大小';break;case 2:$tip .= '超过MAX_FILE_SIZE中允许上传的最大文件大小';break;case 3:$tip .= '文件只有部分上传';break;case 4:$tip .= '没有文件上传';break;case 6:$tip .= '找不到临时目录';break;case 7:$tip .= '文件写入失败,请检测目录权限';break;};echo $tip;}
$path = pathinfo($tmp_name);printf('<pre>%s</pre>', print_r($path, true));//1.白名单if (is_uploaded_file($fileName)) {$type = ['jpg', 'png', 'gif', 'jpeg'];if (is_array($path['extension'], $type)) {$upPath = 'upload/' . md5($path['filename']) . $path['extension'];if (move_uploaded_file($tmp_name, $upPath)) {echo "<img src = '$upPath' style = 'width = 50px'>";}{echo '<p>文件转移失败</p>';}} else {echo '<p>文件格式错误</p>';}} else {echo '<p>文件上传方法错误</p>';}
}
?>
<!DOCTYPE html><html lang="en">
<head>
<meta charset="UTF-8">
<title>文件上传</title>
</head>
<!--enctype:multipart/form-data是将文件以二进制的形式上传,这样可以实现多种类型的文件上传。-->
<!--application/x-www-form-urlencoded:默认的编码方式。但在用文本的传输和MP3等大型文件的时候,使用这种编码就显得效率低下。-->
<!--multipart/form-data:指定传输数据为二进制类型,比如图片,mp3,文件-->
<!--text/plain:纯文本的传输。空格转换为"+"号,但不对特殊字符编码。-->
<body>
<form method="post" action="" enctype="multipart/form-data">
<fieldset>
<legend>文件上传</legend>
<input type="file" name="my_pic" value="上传文件">
<button>提交</button>
</fieldset>
</form>
</body>
</html>
## 2.多文件上传#### 1.上传多个文件一个一个判断```php<?php/*** $_FILE[文件名][name]* $_FILE[文件名][type]* $_FILE[文件名][tmp_name]* $_FILE[文件名][error]* $_FILE[文件名][size]**判断文件是否是通过HTTPPOST上传的。* 如果 filename 所给出的文件是通过 HTTP POST 上传的则返回 TRUE。** pathinfo($tmp_name):返回文件相关信息* [dirname]* [basename]* [extension]* [filename]*/if(isset($_FILES)){foreach($_FILES as $file){echo $file['error'];}}?><!DOCTYPE html><html lang="en"><head><meta charset="UTF-8"><title>文件上传</title></head><!--enctype:multipart/form-data是将文件以二进制的形式上传,这样可以实现多种类型的文件上传。--><!--application/x-www-form-urlencoded:默认的编码方式。但在用文本的传输和MP3等大型文件的时候,使用这种编码就显得效率低下。--><!--multipart/form-data:指定传输数据为二进制类型,比如图片,mp3,文件--><!--text/plain:纯文本的传输。空格转换为"+"号,但不对特殊字符编码。--><body><form method="post" action="" enctype="multipart/form-data"><fieldset><legend>文件上传</legend><input type="file" name="my_pic1" value="上传文件"><input type="file" name="my_pic2" value="上传文件"><input type="file" name="my_pic3" value="上传文件"><button>提交</button></fieldset></form></body></html>
<?php// $_FILESprintf('<pre>%s</pre>', print_r($_FILES, true));if (isset($_FILES['my_pic'])) {foreach ($_FILES['my_pic']['error'] as $key=>$error) {// 0 => UPLOAD_ERR_OKif ($error === UPLOAD_ERR_OK) {// 临时文件名$tmpName = $_FILES['my_pic']['tmp_name'][$key];// 原始文件名$name = $_FILES['my_pic']['name'][$key];// 暂不加密目标文件名$dest = 'uploads/' . $name;// 移动到目标目录中move_uploaded_file($tmpName, $dest) ;// 预览echo "<img src='$dest' width='200'>";}}}?><!DOCTYPE html><html lang="zh-CN"><head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>多文件上传-2</title></head><body><form action="" method="POST" enctype="multipart/form-data"><fieldset><legend>多文件上传-2:逐个上传</legend><input type="file" name="my_pic[]"><input type="file" name="my_pic[]"><input type="file" name="my_pic[]"><button>上传</button></fieldset></form></body></html>
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号