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 ...
随机推荐
- css伪元素::before与::after使用基础示例
1.指定文本前后添加内容 <div class="box">test</div> .box::before{ content: 'before'; marg ...
- Maven--远程仓库的认证
大部分远程仓库无须认证就可以访问,但有时候出于安全方面的考虑,我们需要提供认证信息才能访问一些远程仓库. 配置认证信息和配置仓库信息不同,仓库信息可以直接配置在 POM 文件中,但是认证信息必须配置在 ...
- Maven--仓库的分类
对于 Maven 仓库来说,仓库只分为两类:本地仓库和远程仓库. 当 Maven 根据坐标寻找构件的时候,它首先会查看本地仓库,如果本地仓库存在此构件,则直接使用:如果本地仓库不存在此构件,或者需要查 ...
- OpenCV学习与应用
1.VS2019配置OpenCVhttps://blog.csdn.net/weixin_42274148/article/details/85321091 2.Python中使用PIL快速实现灰度图 ...
- 2017年3月25日工作日志:Jquery使用小结[绑定事件判断、select标签、军官证正则]
jQuery获取DOM绑定事件 在1.8.0版本之前,我们要想获取某个DOM绑定的事件处理程序可以这样: $.data(domObj,'events');//或者$('selector').data( ...
- iOS帅气加载动画、通知视图、红包助手、引导页、导航栏、朋友圈、小游戏等效果源码
iOS精选源码 如丝般顺滑的微信朋友圈(点赞,评论,图文混排表情,... 动态菜单第三版本:动态项,自适应方向 仿appstore首页滚动效果 iOS 透明导航栏方案 TransparentNavig ...
- 吴裕雄--天生自然TensorFlow高层封装:Keras-RNN
# 1. 数据预处理. from keras.layers import LSTM from keras.datasets import imdb from keras.models import S ...
- C++各种模板
高精度: 重载运算符版: #include<cstdio> #include<cstring> #include<algorithm> using namespac ...
- 一张图看懂三维GIS
- 基于rtmp的移动端推流解决方案
因工作需要,及考虑成本因素,需要探索一套免费的移动端基于rtmp推流的直播解决方案,过程虽稍显曲折,但最终还是完成了目标.在这里将记录下来,以便日后查阅. 总体思路 移动端推流(RTMP) ---&g ...