95)PHP,文件上传知识和代码
首先是知识总结:
上传:
从浏览器端传输的到服务器端。
请求时:
数据从浏览器端传输到服务器端。 可见:
上传,发生在浏览器向服务器发出请求过程中。 文件,对于浏览器来讲,就是表单中的一个特殊类型的数据而已 浏览器表单中的数据:两种类型。
, 字符串类型。(字节流编码)
, 文件类型。(二进制编码)
(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,文件上传知识和代码的更多相关文章
- BootStrap fileinput.js文件上传组件实例代码
1.首先我们下载好fileinput插件引入插件 ? 1 2 3 <span style="font-size:14px;"><link type="t ...
- 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 ...
- ASP.NET - 多文件上传,纯代码,不使用插件
解决方案: 前段代码: <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Mu ...
- java常见3种文件上传速度对比和文件上传方法详细代码
在java里面文件上传的方式很多,最简单的依然是FileInputStream.FileOutputStream了,在这里我列举3种常见的文件上传方法代码,并比较他们的上传速度(由于代码是在本地测试, ...
- 文件上传transferTo一行代码的bug
本次的项目环境为 Running with Spring Boot v1.5.10.RELEASE, Spring v4.3.14.RELEASE, 服务器环境为CentOS7.0. transfer ...
- 全网最简单的大文件上传与下载代码实现(React+Go)
前言 前段时间我需要实现大文件上传的需求,在网上查找了很多资料,并且也发现已经有很多优秀的博客讲了大文件上传下载这个功能. 我的项目是个比较简单的项目,并没有采用特别复杂的实现方式,所以我这篇文章的目 ...
- HDwiki文件上传导致远程代码执行漏洞
漏洞版本: HDwiki(2011) 漏洞描述: 互动维客开源系统(HDwiki)作为中国第一家拥有自主知识产权的中文维基(Wiki)系统,由互动在线(北京)科技有限公司于2006 年11月28日正式 ...
- SFTP 文件上传下载引用代码
http://sha1064616837.iteye.com/blog/2036996 http://www.cnblogs.com/itmanxgl/p/fe5d33512609fe540eb08a ...
- Rxjava+Retrofit2+Okhttp3多文件上传(服务器端代码+客户端代码)
所有代码亲测可用,如有问题,欢迎指正. 首先在ApiService接口文件中新建文件上传接口 public interface ApiService { static final String BAS ...
随机推荐
- Java 知识点(二)
接<Java 知识点(一)> java的输入输出与 c 语言不同,下面介绍Java的格式: 16.因为Java的输入类Scanner,定义在java.util包中,所以Java需要输入时要 ...
- 18 11 07 pygame 继续使用
---恢复内容开始--- 1 给原来的游戏不定时 增加一些敌机 用到了pygame的定时器 定时器就是每隔一段时间 就进行一次相同的操作 2 pyagame 在捕获键盘操作有两种 1 ...
- 信号分析——从傅里叶变化到FFT
我们眼中的世界就像皮影戏的大幕布,幕布的后面有无数的齿轮,大齿轮带动小齿轮,小齿轮再带动更小的. 在最外面的小齿轮上有一个小人——那就是我们自己. 我们只看到这个小人毫无规律的在幕布前表演,却无法预测 ...
- JAVA初学者——DOS命令及基本数据类型
Hello!大家好!我是浩宇大熊猫~ 昨天看了韩顺平老师第二节视频的课,记忆尤新的是那个数据类型那一块,可是昨天感觉没掌握就没有发博客. 今天,又看了一遍,加上看了一些其他老师的,有所收获,所以分享给 ...
- Android开发环境搭建以及模拟环境搭建
Android开发环境 现在主流的Android开发环境有: Eclipse + ADT + SDK Android Studio + SDK IntelliJ IDEA + SDK 现在国内大部分开 ...
- DNS和hosts
https://zhidao.baidu.com/question/571487394.html 还有ip地址和域名 域名是唯一的 ip也是唯一的 但是一个域名可以对应多个ip(就好比百度只有一个域名 ...
- pandas在指定列插入数据
import pandas as pd import numpy as np df = pd.DataFrame(np.arange(15).reshape(5, 3), columns=['a', ...
- Dynamics CRM - Plug-in Class 和 Workflow Class 的用法与区别
在 Dynamics CRM 开发中,我们可以使用 JavaScript 在前端对 Entity Form 进行数据操作,与此同时,我们也可以使用 C# 写后台插件,其中就包括了 Plug-in Cl ...
- mysql超大sql导入(10G)
mysql 大数据库文件上传(10G) phpstudy2017 环境 mysql 5.5.53 php 5.5.45 更改php.ini memory_limit 为 2048M php.i ...
- spring boot pom demo
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/20 ...