PHP如何通过表单直接提交大文件详解
前言
我想通过表单直接提交大文件,django 那边我就是这么干的。而对于 php 来说,我认为尽管可以设置最大上传的大小,但最大也无法超过内存大小,因为它无法把文件内容都放到 php://input 里面。直到我试了一下。
下面话不多说了,来一起看看详细的介绍吧
试验
我创建内存 256M 的虚拟机,通过表单直接上传 2.4G 的文件,发现居然可以,挺惊讶的:
后端是 nginx + php 的方式。反正有关 php.ini 里面需要设置的给它足够大:
# pip.ini post_max_size = 100000M upload_max_filesize = 100000M
nginx 在 http 块中添加:
# nginx.conf client_max_body_size 100000m;
难道 PHP 进化了?我把其他版本试了一下,发现 PHP7.0 及其以上的才能成功,5.6 的就不行了,请求会中断 。
PS : php5 不能上传大文件是因为 32 位的锅,导致上传大于 2G 的文件会有问题。
文件 4G 多的时候又不行了,不知道哪里还需要设置:
article photoshop |
改用apache试试
apache 我得用本地的 wamp 来。httpd.conf 需要设置:
# httpd.conf LimitRequestBody 83886080000
apache 版本,一样得7.0以上才能直接上传大文件,但apache可以上传 4G 多的文件,不清楚为什么,难道因为我本地的内存比较大?
article photoshop |
本机内存 8G ,于是我试了上传个 25G 的文件,也是没问题的:
可以可以,很好很强大。
总结
我第一个感觉就是 php 变强了,既然能这么方便上传大文件了,在没有要求进度条的需求里,就可以这么来做了,还蛮方便的。
好了,以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对我们的支持。
相关推荐
-
php不允许用户提交空表单(php空值判断)
可以修改代码,添加些判断: 复制代码 代码如下: if(empty($_POST['name'])){ echo "俗话说的好,雁过留声人过留名<br />"; } elseif(empty($_POST['comment'])){ echo "矮油,多说几句吧~"; } else{ $sql = "INSERT INTO myblog_comments(blog_id, dateposted, name, comment) VALUES
-
php利用fsockopen GET/POST提交表单及上传文件
php利用fsockopen GET/POST提交表单及上传文件,具体内容如下 1.GET get.php <?php $host = 'demo.fdipzone.com'; $port = 80; $errno = ''; $errstr = ''; $timeout = 30; $url = '/socket/getapi.php'; $param = array( 'name' => 'fdipzone', 'gender' => 'man' ); $url = $url.'?'
-
php 多个submit提交表单 处理方法
test.php 复制代码 代码如下: <?php $test = $_POST[ 'test ']; echo '12 '; echo $test; echo $_POST[ 'submit1 ']; echo $_POST[ 'submit2 ']; if (isset($_POST[ 'submit1 ']) && $_POST[ 'submit1 '] == 'submit1 ') { echo 'ok1 '; } if (isset($_POST[ 'submit2 '])
-
JQuery打造PHP的AJAX表单提交实例
如果你对JQuery的基本语法还不是很熟悉,请搜索本站的教程资源.如果你对PHPMailer用法不熟悉,请查看本站的另一篇文章<使用PHPMailer类库发送电子邮件>. 第一步,创建一个表单HTML页面 这里,我们只展示主要的表单部分HTML结构代码: 复制代码 代码如下: <div id="contact_form"> <form name="contact" method="post" action="
-
php实现表单提交上传文件功能
本文实例为大家分享了php实现表单提交上传文件功能的具体代码,供大家参考,具体内容如下 首先创建含表单的html文件:upload.html <!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8"> <title>上传文件</title> </head> <body> <form action=&q
-
PHP对表单提交特殊字符的过滤和处理方法汇总
PHP关于表单提交特殊字符的处理方法做个汇总,主要涉及htmlspecialchars/addslashes/stripslashes/strip_tags/mysql_real_escape_string等几个函数联合使用,与大家共同交流. 一.几个与特殊字符处理有关的PHP函数 函数名 释义 介绍 htmlspecialchars 将与.单双引号.大于和小于号化成HTML格式 &转成&"转成"' 转成'<转成<>转成> htmlentitie
-
PHP 表单提交给自己
在大部分情况下我们指定另外一个来处理表单内容的URL地址给Action属性,但也有部分情况是需要将表单数据提交给自己的.这时候我们应该如何指定Action属性值呢?<?php if (isset($_POST['action']) && $_POST['action'] == 'submitted') { print '<pre>'; print_r($_POST); print '<a href="'. $_SERVER['PHP_SEL
-
PHP防止表单重复提交的几种常用方法汇总
本文较为详细的汇总了PHP防止表单重复提交的几种常用方法,在PHP程序开发中有着很高的实用价值.具体方法如下: 1. 使用JS让按钮在点击一次后禁用(disable).采用这种方法可以防止多次点击的发生,实现方式较简单. 缺点是若客户端禁止JavaScript脚本,则失效. 2. 在提交成功后执行页面重定向(redirect).转到提交成功信息页面. 特点:避免F5重复提交,消除浏览器前进和后退按钮可导致的同样问题. 3. 表单隐藏域中存放session(表单被请求时生成的标记).采用此方法在接
-
php提交表单时判断 if($_POST[submit])与 if(isset($_POST[submit])) 的区别
应该这样用if(isset($_POST['submit'])) { } 提交表单时 if($_POST[submit])与 if(isset($_POST[submit])) 的区别 第一种方法会出现一个warning,第二种相对更严谨. 还有就是POST的键名最好加上单引号,这样效率稍微高点(大概3-4倍). 恩 差不多那个意思,如果设置了这个变量则返回true PHP中if(isset($_POST['Submit']))是什么意思 isset -- 检测变量是否设置 判断post过来的数
-
PHP如何通过表单直接提交大文件详解
前言 我想通过表单直接提交大文件,django 那边我就是这么干的.而对于 php 来说,我认为尽管可以设置最大上传的大小,但最大也无法超过内存大小,因为它无法把文件内容都放到 php://input 里面.直到我试了一下. 下面话不多说了,来一起看看详细的介绍吧 试验 我创建内存 256M 的虚拟机,通过表单直接上传 2.4G 的文件,发现居然可以,挺惊讶的: 后端是 nginx + php 的方式.反正有关 php.ini 里面需要设置的给它足够大: # pip.ini post_max_s
-
表单验证正则表达式实例代码详解
表单验证正则表达式具体内容如下所示: 首先给大家解释一些符号相关的意义 1. /^$/ 这个是个通用的格式. ^ 匹配输入字符串的开始位置:$匹配输入字符串的结束位置 2. 里面输入需要实现的功能. * 匹配前面的子表达式零次或多次: + 匹配前面的子表达式一次或多次: ?匹配前面的子表达式零次或一次: \d 匹配一个数字字符,等价于[0-9] 下面通过一段代码给大家分析表单验证正则表达式,具体代码如下: <!DOCTYPE html> <h
-
关于jquery form表单序列化的注意事项详解
本文主要给大家介绍的是关于jquery form表单序列化的一些注意事项,分享出来供大家参考学习,下面话不多说,来一起看看详细的介绍: 我们先来讲讲表单中 中readonly和disabled的区别: readonly只对input和textarea有效, 但是disabled对于所以的表单元素都是有效的,包括radio,checkbox等 如果表单中使用的disabled那么用户是不能选择的,也就是说这个文本框是无法获取到焦点的,而readonly是可以获取到焦点,只是不能修改,为只读 最重要
-
jquery表单插件form使用方法详解
传统的表单提交,都是页面跳转的形式,但是现在更流行ajax提交,那么如果希望有表单提交的简便,也有ajax的效果,有什么解决办法吗? 怎么使用 两种使用方式: 第一种方式 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <script src="js/jquer
-
Bootstrap表单控件使用方法详解
表单作为Bootstrap的核心内容,主要功能是用来与用户做交流的一个网页控件,良好的表单设计能够让网页与用户更好的沟通. <!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8"> <!-- 使用最新的浏览器内核解析 --> <meta http-equiv="X-UA-Compatible" content=&q
-
Python的Django框架中forms表单类的使用方法详解
Form表单的功能 自动生成HTML表单元素 检查表单数据的合法性 如果验证错误,重新显示表单(数据不会重置) 数据类型转换(字符类型的数据转换成相应的Python类型) Form相关的对象包括 Widget:用来渲染成HTML元素的工具,如:forms.Textarea对应HTML中的<textarea>标签 Field:Form对象中的一个字段,如:EmailField表示email字段,如果这个字段不是有效的email格式,就会产生错误. Form:一系列Field对象的集合,负责验证和
-
django做form表单的数据验证过程详解
我们之前写的代码都没有对前端input框输入的数据做验证,我们今天来看下,如果做form表单的数据的验证 在views文件做验证 首先用文字描述一下流程 1.在views文件中导入forms模块 2.然后创建一个类,继承forms.form 3.然后在这个类中写变量,这个变量的就是input标签中的name,也就是前端往后端传递的k值,我们就可以对这个k值对应的v值做数据内容的校验,比如是邮箱模式,比如是否允许空,最大字段长度,最小字段长度 4.然后在视图函数中,实例化一个步骤3中的类,然后用这
-
vue表单验证自定义验证规则详解
本文实例为大家分享了vue表单验证自定义验证规则,供大家参考,具体内容如下 这是公司里Vue+Element UI的项目.写的验证规则放图: 样式代码: <div class="info" v-if="openslist"> <h2 class="info-h">情况反馈表</h2> <el-form ref="stateForm" :model="stateForm
-
jQuery表单美化插件jqTransform使用详解
jQuery Form表单美化插件jqTransform,非常实用的jQuery插件,自动把你整个Form表单进行美化处理,包括SELECT下拉框.文本框.单选.复选框.按钮等,当然不支持input file文件选择框,这个可以参照我们之前的input file选择框美化教程进行改造,在浏览器兼容方面,兼容 ie 6+, safari 2+, firefox 2+,插件还是很不错的,使用起来也很简单,推荐学习和使用. 使用方法: 1.加载jQuery和插件 <script type="te
-
jquery表单插件Autotab使用方法详解
Autotab也是一款功能专一的表单插件,它提供了自动跳格的功能,当用户输入的字符数一旦超过已定义的最大长度,则会根据事先设置的目标自动跳转到相应元素上,省却了 用户按[Tab]键的麻烦.最典型的应用就是输入IP地址.软件激活码等地方了,我们做的web项目中也有很多地方可以用到这插件,对于提高用户体验还是很有帮助的. 使用时需要引入jquery.autotab.js,下载地址:点击进入下载页面 <html> <head> <title> New Document <
随机推荐
- 一个可绑定数据源的jQuery数据表格插件
- Tomcat安装与配置Native APR模式的教程
- C#检查foreach判读是否为null的方法
- KMP算法精解及其Python版的代码示例
- java多线程复制文件的实例代码
- 利用docker搭建php7和nginx运行环境全过程(官方镜像)
- JS 控件事件小结
- jquery使用ul模拟select实现表单美化的方法
- Linux命令行和shell脚本编程宝典 Richard Blum
- 基于 aLi Lua Web Server 的一个简单例子
- MySQL中安装样本数据库Sakila过程分享
- 深入理解Qt中各种消息框对话框的使用
- 微信小程序tabBar底部导航中文注解api详解
- VC实现屏幕截词功能的方法详解
- c++读取sqlserver示例分享
- HVPLS技术让以太网当上主角
- Java编程实现计算两个日期的月份差实例代码
- Python数据结构与算法(几种排序)小结
- quarzt定时调度任务解析
- VUE渲染后端返回含有script标签的html字符串示例