【后端开辟】用PHP完成一个简易版文件上传功用(超细致解说)

1. php简化版的图片上传(没有种种考证)

<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

<?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. 文件的写入与读取

起首引见写入:

     $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示意写入文件,第一个参数为写入文件的位置,第二个为要写入的数据

第四句示意封闭该文件,示意写入终了,本次实行终了

$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(示意换行,换成网页中的换行)

以上就是用PHP完成一个简易版文件上传功用(超细致解说)的细致内容,更多请关注ki4网别的相干文章!

点赞

发表评论

电子邮件地址不会被公开。必填项已用 * 标注