1. php简化版的图片上传(没有各种验证)
1
2
3
4
|
<form action= "" enctype= "multipart/form-data" method= "post" >
请选择需要上传的文件:<input type= "file" name= "upfile" /><br>
<input type= "submit" value= "上传" />
</form>
|
首先我们需要在form表单中加入 enctype=”multipart/form-data”表示声明表单中会有图片发送, action=”” 表示当前页面提交,method=”post”传输方式为post
1
2
3
4
5
6
7
8
9
10
11
12
|
<?php
if ( is_uploaded_file ( $_files [ 'upfile' ][ 'tmp_name' ])){
$upfile = $_files [ "upfile" ];
$name = $upfile [ 'name' ];
$tmp_name = $upfile [ "tmp_name" ];
move_uploaded_file( $tmp_name , 'up/' . $name );
echo "上传成功" ;
}
else {
echo "您还没有上传文件" ;
}
?>
|
关键词总结
is_uploaded_file 表示验证文件是否是通过 http post 上传的,条件成立才可以正常上传
$_files[‘upfile’][‘tmp_name’]) 表示获取到当前传输图片的本地位置
move_uploaded_file($tmp_name,’up/’.$name); ,该方法有两个参数,第一个为上传的文件的文件名,第二个为移动文件到这个位置
2. 文件的写入与读取
首先介绍写入:
1
2
3
4
|
$myfile = fopen ( "comment/" .time(). '-' . rand(0, 1000) . ".comment" , "a" ) or die ( "unable to open file!" );
$txt = time(). '<br />' ;
fwrite( $myfile , $txt );
fclose( $myfile );
|
其中fopen函数的作用为写入数据,第一个参数为写入文件具体路径,第二个表示将读取到得数据放入该文件中,其中文件名采用时间戳加上随机数构成,后缀名为comment,a表示写入方式打开,将文件指针指向文件末尾。如果文件不存在则尝试创建它,or die表示执行失败,就执行unable to open file!(无法打开文件)。
第二句表示数据,数据可以是post传输的,也可以是get,随意
第三句fwrite表示写入文件,第一个参数为写入文件的位置,第二个为要写入的数据
第四句表示关闭该文件,表示写入完毕,本次执行完毕
1
2
3
4
5
6
7
8
9
10
|
$list = glob ( "comment/*.comment" );
rsort( $list );
for ( $i = 0; count ( $list ) > $i ; $i ++) {
$file_path = $list [ $i ];
if ( file_exists ( $file_path )) {
$fp = fopen ( $file_path , "r" );
$str = fread ( $fp , filesize ( $file_path ));
echo $str = str_replace ( "\r\n" , "<br />" , $str );
}
}
|
在介绍读取:
关键语句为
第一句:首先使用(glob)先找到需要读取的文件,如果有很多符合条件的文件,那么他们将会使用数组进行保存,读取的时候使用遍历数组就可以了
第二句: rsort为降序排序,主要是为了满足特定条件下的排序,例如按照发布时间
第三句:因为可以通过var_dump,print等知道glob是以数组的形式保存路径的,所以我们使用count算出总数,然后一条条遍历,便可以得到需要读取的文件路径
第四句:$file_path获取文件路径
第五句:file_exists判断文件是否存在
第六句:fopen读取该文件,并且以只读的方式打开
第七句:fread第一个参数表示读取的东西,第二个表示读取的文件的大小,这里也就表示有多少读多少
第八句:str_replace替换函数,表示将$str中的所有的\r\n都替换成br(表示换行,换成网页中的换行)