PHP的文件上传原理说明

文件上传的基本介绍、应用场景

点击上传时,照片会上传到哪里去?

当我们点击上传后会将图片、文件等上传到服务器上面,并返回图片的地址,这样,我们只需要给其他用户提供该文件的地址即可。

PHP的文件上传原理说明

文件上传的原理说明

文件上传,其实也是通过表单提交的,表单提交的数据分为如下两种:

(1)字节流数据:输入框、单选框、复选框、多行文本域等都是通过字节的数据传输到服务器,服务器通过$_GET  $_POST接收

(2)二进制文件流的形式;当需要提交一些文件的时候,由于文件采用的二进制的形式进行编码,所以需要先将二进制文件转码,然后再提交到服务器

提交的时候,需要通过input type=”file” 文件域上传

服务器接收的时候,通过$_FILES进行接收

注意:如何将表单的数据,以二进制流的形式进行传输,必须在表单form标签增加一个属性:enctype=”multipart/form-data”

先创建表单文件:upload.html

PHP的文件上传原理说明

提交之后,在服务器端接收并打印:

PHP的文件上传原理说明

PHP的文件上传原理说明

MIME类型详解:

多用途internet邮件扩展,mime类型的出现,跟着电子邮件出现的

早期,发送电子邮件的时候,里面可能会附带一些附件,计算机系统根据附件的类型找到对应的设备打开,例如:传输的是视频,就会找到视频播放器去打开,如果传输的是网页文件,那么会自动使用浏览器去打开

MIME类型,包括2个部分:第一个部分是该文件所属的一个大类,第二个部分是文件细节小类,例如:

text/html,属于文本文件,html这样的文本文件

image/jpg,属于图像大类,jpg这种类型的图像

tmp_name详解:

tmp------ temp----temporary,该单词的意思是临时的

文件上传的原理:

当我们点击提交表单时,会将file文件域里面的文件,先上传到临时的目录(可以在php的配置文件中设置),默认的临时目录是c:/windows/temp,如果需要持久的保存,需要通过php的函数move_uploaded_file()移动到指定的位置,如果不移动,当php脚本执行结束,临时文件就会消失

代码演示一下:

由于php脚本执行的太快,为了看到效果,我们让php脚本休眠10秒钟:

PHP的文件上传原理说明

提交表单之后,就会在c:/windows/temp目录下面看到这个临时文件

PHP的文件上传原理说明

为了不让该临时文件消失,我们需要在脚本结束之前,将该临时文件移动到服务器

使用php的move_uploaded_file()函数进行移动的

本文来自投稿,不代表重蔚自留地立场,如若转载,请注明出处https://www.cwhello.com/10062.html

如有侵犯您的合法权益请发邮件951076433@qq.com联系删除

(0)
重蔚重蔚管理团队
上一篇 2018年9月14日 21:41
下一篇 2018年9月15日 10:52

相关推荐

  • PHP与数据库异步处理的集成。

    随着互联网技术的不断发展,Web应用程序已经成为互联网世界中最重要的组成部分之一。而PHP作为Web开发的一种开源脚本语言,其在Web应用程序开发中日益重要。在大多数Web应用程序中,数据处理是一个必不可少的环节。…

    2023年5月21日
    07
  • PHP与数据加密的集成。

    随着互联网的不断发展和计算机技术的不断提升,数据安全问题越来越受到关注。在很多应用领域中,需要通过加密来保护重要数据的安全性。而在这个过程中,选择一种可靠的加密算法和一个合适的编程语言来实现加密操作…

    2023年5月21日
    04
  • PHP处理时间和时区需注意以下三点!

    当被问及是否很难处理日期和时区时,超过 50%的开发人员回答“是”。我的猜测是,那些对这项民意调查说“不”的人要么已经明白了这一点,要么他们没有与必须迎合全球用户的平台/应用程序合作。无论如何,我想创建一篇博…

    2022年6月21日
    0143
  • 小编分享云虚拟主机怎么搭建php框架。

    云虚拟主机怎么搭建php框架,这个问题的答案可能会因为不同的云虚拟主机服务商而有所不同。一般来说,您需要先在云虚拟主机上安装PHP环境,然后再安装所需的PHP框架。具体的步骤可以参考以下链接 。 云虚拟主机怎么…

    2024年7月12日
    01
  • 使用PHP连接MariaDB数据库。

    MariaDB是一种开源的关系型数据库管理系统,它是MySQL的一个分支。PHP作为一种开源的服务器端脚本语言,被广泛应用于Web开发中。在很多Web开发项目中,需要使用PHP连接到MariaDB数据库,以便在Web应用程序中存储和…

    2023年5月21日
    06
  • PHP之钩子

    PHP 提供的钩子PHP 和 Zend Engine 为扩展提供了许多不同的钩子,这些扩展允许扩展开发人员以 PHP userland 无法提供的方式控制 PHP 运行时。本章将展示各种钩子和从扩展钩子到它们的常见用例。钩子到 PHP 功能的一…

    2022年6月13日
    0153
  • 经验分享宝塔面板 php。

    宝塔面板是一款方便的服务器管理工具,支持多种语言,包括PHP。它可以帮助用户轻松管理服务器、网站和数据库,提高运维效率。 宝塔面板轻松部署PHP项目完善解决困扰多年的问题 在互联网时代,越来越多的人开始接触…

    2024年7月6日
    02
  • PHP上传问题的后续问题

    如何验证文件类型 验证文件括展名 验证文件MIME类型 保证上传文件命名的唯一性 时间 时间戳 IP 将上传功能进行封装 如何上传多文件 html文件: 测试代码: 运行结果: $FILE: 第一个[]:文件框名称 第二个[]:属性 第…

    2017年11月8日 PHP自学教程
    0215

联系我们

QQ:951076433

在线咨询:点击这里给我发消息邮件:951076433@qq.com工作时间:周一至周五,9:30-18:30,节假日休息