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

简易版php文件上传_超详细详解的更多相关文章

  1. FasfDFS整合Java实现文件上传下载功能实例详解

    https://www.jb51.net/article/120675.htm 在上篇文章给大家介绍了FastDFS安装和配置整合Nginx-1.13.3的方法,大家可以点击查看下. 今天使用Java ...

  2. PHP文件上传代码和逻辑详解

    文件上传的逐步完善------ [简单的上传:]   <form action="upload.php"  method="post"  enctype= ...

  3. JS文件上传神器bootstrap fileinput详解

    Bootstrap FileInput插件功能如此强大,完全没有理由不去使用,但是国内很少能找到本插件完整的使用方法,于是本人去其官网翻译了一下英文说明文档放在这里供英文不好的同学勉强查阅.另外附上一 ...

  4. 【转】JQuery上传插件Uploadify使用详解及错误处理

    转自:http://www.jb51.net/article/43498.htm 关于JQuery上传插件Uploadify使用详解网上一大把,基本上内容都一样.我根据网上的步骤配置完成后,会报一些错 ...

  5. 转 虫师的selenium借助AutoIt识别上传(下载)详解

    selenium借助AutoIt识别上传(下载)详解 2014-12-27 11:26 by 虫师, 755 阅读, 1 评论, 收藏,  编辑 AutoIt目前最新是v3版本,这是一个使用类似BAS ...

  6. indows下PHP通过ffmpeg给上传的视频截图详解

    windows下PHP通过ffmpeg给上传的视频截图详解,php_ffmpeg.dll安装下载,找了很久php_ffmpeg.dll的下载地址和应用,发现有用的资源很少,现在问题解决了,贴出来跟大家 ...

  7. apache_fileupload实现文件上传_上传多个文件

    1.导包 核心类: DiskFileItemFactory – 设置磁盘空间,保存临时文件.只是一个具类. ServletFileUpload  - 文件上传的核心类,此类接收request,并解析r ...

  8. JS_单个或多个文件上传_不支持单独修改

    A-From表单直接填写提交地址,不过干预: 1. 单文件上传 最简单的文件上传,是单文件上传,form标签中加入enctype="multipart/form-data",for ...

  9. django——文件上传_分页_ajax_富文本_celery

    上传文件 概述 当Django在处理文件上传时,文件的数据被存储在request.FILES属性中 FILES只有在请求的方法为POST且提交的form表单带有enctype="multip ...

随机推荐

  1. 递归删除文件和文件夹(bat)

    递归删除当前目录下指定的文件和文件夹,使用了通配符,Win10下亲测有效,仅供参考!  Batch Code  123456   @echo off echo del file... for /r % ...

  2. kubernetes学习之二进制部署1.16

    服务器规划和系统初始化 一.服务器规划 10.255.20.205 Master01 kube-apiserver.kube-controller-manager.kube-scheduler.ETC ...

  3. windows10删除多出的oem分区

    某次windows升级后,磁盘管理里新出现一个500多M的OEM分区 其实系统里本来就有一个OEM分区是第一个分区,大小499M,可能因为这个分区太小,系统就又新建一个 因为在windows10分区后 ...

  4. Conv2D

    Conv2D keras.layers.convolutional.Conv2D(filters, kernel_size, strides=(1, 1), padding='valid', data ...

  5. 在ARM64位开发板上兼容ARM32位的可执行程序

    邮箱:pengdonglin137@163.com 参考:https://stackoverflow.com/questions/1706328/how-do-shared-libraries-wor ...

  6. CSP 201812-2 小明放学

    问题描述: 解题思路: 由于数据的量较大,需要使用long long来存储结果,否则会爆掉结果只能得到一部分的分 可以类比时钟,将红绿灯的变换当成时钟的运转,这样用模运算来断定红绿灯在到达时处于什么颜 ...

  7. 性能测试:TPS和QPS的区别

    做测试,各种ps,jps,tps,qps,rps,hps,你理解几个? 技术群里,问得最多的就是tps和qps,有相似的地方,也有差异的地方,我简单谈下自己的理解.(由于比较忙,下面部分摘抄自网络) ...

  8. Spring 整合 JPA

    spring 整合 jpa 客户的基本CRUD 依赖 <properties> <spring.version>4.2.4.RELEASE</spring.version ...

  9. JAVA web 框架集合

    “框架”犹如滔滔江水连绵不绝, 知道有它就好,先掌握自己工作和主流的框架: 在研究好用和新框架. 主流框架教程分享在Java帮帮-免费资源网 其他教程需要时间制作,会陆续分享!!! 152款框架,你还 ...

  10. 掌握Visual Studio断点

    我知道你现在在想什么.断点?真的吗?关于断点有什么需要掌握的?你按F9然后停在代码行.如果你是这么想的,这篇文章是给你的:继续读 Visual Studio提供了一组相当丰富的断点类型和操作,可以使您 ...