首先是知识总结:

  

 上传:
从浏览器端传输的到服务器端。
请求时:
数据从浏览器端传输到服务器端。 可见:
上传,发生在浏览器向服务器发出请求过程中。 文件,对于浏览器来讲,就是表单中的一个特殊类型的数据而已 浏览器表单中的数据:两种类型。
, 字符串类型。(字节流编码)
, 文件类型。(二进制编码)
(tip:文件就是表单中数据的一部分) 提交表单时,浏览器自动将表单内的数据,传输到服务器端,文件型也会包含在内。 服务器角度:
在接受浏览器的请求时,处理好表单内数据。 根据数据类型不同(2种),采用不同的处理方法:
。字符串类型,存储在$_POST变量中(内存中)
。文件型数据,存储到上传临时目录中。(在Windows/Temp中)

简单代码样例:

    login.html

 <html>
<head>
<title>Form</title>
<meta
http-equiv="Content-Type" content="text/html;charset=UTF-8">
</head> <body>
<form action="index.php" method="post" name="form1" ENCTYPE="multipart/form-data">
<table width="" border="" align="center" cellpadding="" cellspacing="">
<tr>
<td width="">
<div align="right">姓名:</div></td>
<td width="">
<label>
<input name="username" type="text" id="username">
</label>
</td> </tr>
<tr>
<td>
<div align
="right">职业:</div></td>
<td>
<label>
<input name
="job" type="text" id="job">
</label></td>
</tr>
<tr>
<td>
<label>
文件上传:<input type="file" name="picture">
</label>
</td>
</tr>
</table>
<p align="center">
<input type="submit" value="Submit">
</p>
</form>
</body>
</html>

      然后是接收数据的php文件:index.php

  var_dump($_POST);
echo '<pre>';
echo "<pre>";
echo '\n';
var_dump($_REQUEST);
echo '<pre>';
echo "<pre>";
echo '<pre>';
echo "<pre>";

      结果展示:
                         

(2)然后我想叫浏览器自己区分开,我表单的数据到底是字符串还是文件,只需要在<form>标签中加上    enctype="multipart/form-data

      具体就是:

          

      然后,你再看我的结果:

                 

   其实你看,这结果根本没有显示出我上传的图片,那么我上传的图片哪里去了,

  在一个脚本周期内,这个图片是存在与我们电脑的临时文件中的,但是脚本结束,临时文件中这张图片就会消失,那么我们怎么才能看到呢,

  在我的那个处理表单数据的php文件:index.php文件添加  sleep(秒数)          让你的脚本延迟结束,这样我们就能在临时文件目录中看到了,下面就是演示:(还可以百度云里的display.mp4)

    那个Temp目录在我的C:\Windows\Temp ,临时文件存在哪里,可以自己设置,在php.ini中

(3)对于表单中的文件,我们可以通过用$_FILE来进行处理,比如下面的代码:
  

 <?php

   var_dump($_POST);
echo '<pre>';
echo "<pre>"; var_dump($_REQUEST);
echo '<pre>';
echo "<pre>";
echo '<pre>';
echo "<pre>"; var_dump($_FILES);
sleep();
// sleep(5);

结果输出:

95)PHP,文件上传知识和代码的更多相关文章

  1. BootStrap fileinput.js文件上传组件实例代码

    1.首先我们下载好fileinput插件引入插件 ? 1 2 3 <span style="font-size:14px;"><link type="t ...

  2. JAVA中使用FTPClient实现文件上传下载实例代码

    一.上传文件 原理就不介绍了,大家直接看代码吧 ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 ...

  3. ASP.NET - 多文件上传,纯代码,不使用插件

    解决方案: 前段代码: <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Mu ...

  4. java常见3种文件上传速度对比和文件上传方法详细代码

    在java里面文件上传的方式很多,最简单的依然是FileInputStream.FileOutputStream了,在这里我列举3种常见的文件上传方法代码,并比较他们的上传速度(由于代码是在本地测试, ...

  5. 文件上传transferTo一行代码的bug

    本次的项目环境为 Running with Spring Boot v1.5.10.RELEASE, Spring v4.3.14.RELEASE, 服务器环境为CentOS7.0. transfer ...

  6. 全网最简单的大文件上传与下载代码实现(React+Go)

    前言 前段时间我需要实现大文件上传的需求,在网上查找了很多资料,并且也发现已经有很多优秀的博客讲了大文件上传下载这个功能. 我的项目是个比较简单的项目,并没有采用特别复杂的实现方式,所以我这篇文章的目 ...

  7. HDwiki文件上传导致远程代码执行漏洞

    漏洞版本: HDwiki(2011) 漏洞描述: 互动维客开源系统(HDwiki)作为中国第一家拥有自主知识产权的中文维基(Wiki)系统,由互动在线(北京)科技有限公司于2006 年11月28日正式 ...

  8. SFTP 文件上传下载引用代码

    http://sha1064616837.iteye.com/blog/2036996 http://www.cnblogs.com/itmanxgl/p/fe5d33512609fe540eb08a ...

  9. Rxjava+Retrofit2+Okhttp3多文件上传(服务器端代码+客户端代码)

    所有代码亲测可用,如有问题,欢迎指正. 首先在ApiService接口文件中新建文件上传接口 public interface ApiService { static final String BAS ...

随机推荐

  1. Python—程序设计:观察者模式

    观察者模式 内容:定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时, 所有依赖于它的对象都得到通知并被自动更新.观察者模式又称“发布-订阅”模式. 角色: 抽象主题(Subject) 具体 ...

  2. 增删改查(简单版&连接数据库)

    这个博客也是补充之前的学习内容: 项目总述:这个增删改查我以,选课名称,选课教室,选课教师基本信息,作为主要的信息来源.主要对这些信息最基本的增删改查 详细的分析与说明: 1.首先在src文件里定义四 ...

  3. Django2.0——模板渲染(一)

    在前面的介绍中我们都是用简单的 django.http.HttpResponse来把内容显示到网页上,本节将讲解如何使用渲染模板的方法来显示内容,即调用精美的HTML页面.模板的创建既可以在项目下创建 ...

  4. 洛谷 P1032 字串变换(map)

    题目传送门 解题思路: 搜索题,因为要求最少次数,用bfs. AC代码: #include<cstdio> #include<iostream> #include<cst ...

  5. TCP协议的学习

    1.关于TCP理解的重点(TCP协议可以理解为就是一段代码) (1).TCP协议工作在传输层,对上服务socket接口,对下调用IP层 (2).TCP协议面向连接,通信前必须先3次握手建立连接关系后才 ...

  6. .net core编译时设置不自动生成“netcoreapp3.0”目录

    不知道出于什么目的,.netcore项目默认编译时生成的文件要多加一层"netcoreapp3.0"或"netcoreapp2.1",这应该不符合大多数开发者的 ...

  7. order by rand()优化

    优化前: SELECT id, loan_id, NAME, company FROM tablename WHERE time BETWEEN 1522512000 AND 1525103999 A ...

  8. Java 创建类的过程

    创建对象过程: 堆分配父类空间 堆分类子类空间 属性初始化 调用构造方法(第一行是调用父类构造方法)

  9. 7.docker file 语法

    详细文档 : https://docs.docker.com/engine/reference/builder/ 1. FROM   尽量使用官方的 image 作为 base image FROM ...

  10. 如何保存Keras模型

    我们不推荐使用pickle或cPickle来保存Keras模型 你可以使用model.save(filepath)将Keras模型和权重保存在一个HDF5文件中,该文件将包含: 模型的结构,以便重构该 ...