Ⅰ 在PHP中如何实现大文件上传功能(最大可到2G)
方法是有,但是要花钱啊,网上那些可恶收费的控件很多,我也被这个困扰着来这里只是抱怨一下╮(╯▽╰)╭
Ⅱ PHP怎么上传大文件
优化的上传支持
实质:webserver支持
类型:优化
这个特性正如名字那样,可以加速对大POST请求的处理速度,包括文件上传。优化是通过将请求体已写入一个临时文件,然后fastcgi协议传递文件名而不是请求体到来实现的。目前就我所知,只有nginx0.5.9以上才支持这个功能。显然,这种模式只在php和webserver在一台机器上的时候才能用。
nginx样例配置:
location~.php$({fastcgi_pass_request_bodyoff;client_body_in_file_onlyclean;fastcgi_paramREQUEST_BODY_FILE$request_body_file;...fastcgi_pass...;})
在php中不需要配置任何东西。如果php收到了参数REQUEST_BODY_FILE,就读取文件中的请求体,如果没有,就从fastcgi协议中读取请求体。
Ⅲ php如何批量上传大文件
使用 SWFUpload 上传插件吧。开源的
Ⅳ 求php怎么实现web端上传超大文件
加大PHP上传文件大小的限制,是通过修改PHP.INI文件来实现,但是这个支持是有限度的,因为WEB协议本为下载而生,超大文件的上传是FTP的专利。
PHP用超级全局变量数组$_FILES来记录文件上传相关信息的。
1.file_uploads=on/off
是否允许通过http方式上传文件
2.max_execution_time=30
允许脚本最大执行时间,超过这个时间就会报错
3.memory_limit=50M
设置脚本可以分配的最大内存量,防止失控脚本占用过多内存,此指令只有在编译时设置了
--enable-memory-limit标志的情况下才生效
4.upload_max_filesize=20M
允许上传文件的最大大小,此指令必须小于post_max_size
5.upload_tmp_dir
上传文件临时存放目录
6.post_max_size=30M
允许post方式可以接受最大大小
$_FILES['myFile']['name'] 客户端上次文件的原始名称。
$_FILES['myFile']['type'] 文件的 MIME 类型,需要浏览器提供该信息的支持,例如"image/gif"。
$_FILES['myFile']['size'] 已上传文件的大小,单位为字节。
$_FILES['myFile']['tmp_name'] 文件被上传后在服务端储存的临时文件名,一般是系统默认。可以在php.ini的upload_tmp_dir 指定,但 用 putenv() 函数设置是不起作用的。
$_FILES['myFile']['error'] 和该文件上传相关的状态码。['error'] 是在 PHP 4.2.0 版本中增加的。下面是它的说明:(它们在PHP3.0以后成了常量)
UPLOAD_ERR_OK
值:0; 没有错误发生,文件上传成功。
UPLOAD_ERR_INI_SIZE
值:1; 上传的文件超过了 php.ini 中 upload_max_filesize 选项限制的值。
UPLOAD_ERR_FORM_SIZE
值:2; 上传文件的大小超过了 HTML 表单中 MAX_FILE_SIZE 选项指定的值。
UPLOAD_ERR_PARTIAL
值:3; 文件只有部分被上传。
UPLOAD_ERR_NO_FILE
值:4; 没有文件被上传。
值:5; 上传文件大小为0.
文件被上传结束后,默认地被存储在了临时目录中,这时您必须将它从临时目录中删除或移动到其它地方,如果没有,则会被删除。
也就是不管是否上传成功,脚本执行完后临时目录里的文件肯定会被删除。
附:修改PHP上传文件大小限制的方法
1. 一般的文件上传,除非文件很小.就像一个5M的文件,很可能要超过一分钟才能上传完.
但在php中,默认的该页最久执行时间为 30 秒.就是说超过30秒,该脚本就停止执行.
这就导致出现 无法打开网页的情况.这时我们可以修改 max_execution_time
在php.ini里查找
max_execution_time
默认是30秒.改为
max_execution_time = 0
0表示没有限制
2. 修改 post_max_size 设定 POST 数据所允许的最大大小。此设定也影响到文件上传。
php默认的post_max_size 为2M.如果 POST 数据尺寸大于 post_max_size $_POST 和 $_FILES superglobals 便会为空.
查找 post_max_size .改为
post_max_size = 150M
3. 很多人都会改了第二步.但上传文件时最大仍然为 8M.
为什么呢.我们还要改一个参数upload_max_filesize 表示所上传的文件的最大大小。
查找upload_max_filesize,默认为8M改为
upload_max_filesize = 100M
另外要说明的是,post_max_size 大于 upload_max_filesize 为佳.
Ⅳ PHP怎么向空间服务器上传比较大的文件
可以用FTP方式进行。
Ⅵ PHP如何实现超大文件上传
1G之上算不算超大?
修改服务器配置文件中的upload_max_size(具体名字可能不对,意思是对的)为“1G”,即可!
Ⅶ php超大文件上传如何实现
超大是多大?
如果几百M之内,可以通过修改php的配置文件来实现,网上很容易可以搜索到具体修改的值
不过,我更建议前端使用分段上传的方式来实现,具体方法还是请搜索。
Ⅷ PHP实现浏览器端大文件分片上传如何实现
分片上传的原理就是通过切割上传文件,然后在浏览器的头部通过etag来进行划分文件传输,服务器端接收到文件片段和分割起始符之后,进行拼接文件,最后合成一个大文件。
你可以自己通过php来获取浏览器头部传输标志来进行文件的拼接组装,也可以通过现有的大文件传输类来上传文件。
关键点
记住分割文件点,也就是分割文件的顺序,拼接文件需要通过etag按照顺序拼接,分片可以并发传输,这其实也是并发下载的原理。
Ⅸ 如何让PHP上传超大文件
1.在php.ini修改上传文件的大小
打开php.ini,首先找到(前4个够用了)
file_uploads = on ;是否允许通过HTTP上传文件的开关。默认为ON即是开
upload_tmp_dir ;文件上传至服务器上存储临时文件的地方,如果没指定就会用系统默认的临时文件夹
upload_max_filesize = 8m ;望文生意,即允许上传文件大小的最大值。默认为2M
post_max_size = 8m ;指通过表单POST给PHP的所能接收的最大值,包括表单里的所有值。默认为8M
一般地,设置好上述四个参数后,上传<=8M的文件是不成问题,在网络正常的情况下。
但如果要上传>8M的大体积文件,只设置上述四项还一定能行的通。
进一步配置以下的参数
max_execution_time = 600 ;每个PHP页面运行的最大时间值(秒),默认30秒
max_input_time = 600 ;每个PHP页面接收数据所需的最大时间,默认60秒
memory_limit = 8m ;每个PHP页面所吃掉的最大内存,默认8M
把上述参数修改后,在网络所允许的正常情况下,就可以上传大体积文件了
max_execution_time = 600
max_input_time = 600
memory_limit = 32m
file_uploads = on
upload_tmp_dir = /tmp
upload_max_filesize = 32m
post_max_size = 32m
2如果还是解决不了.
nginx修改上传文件大小限制
在 /etc/nginx/conf.d/下 找到你的配置文件 在location中加上这样一段代码
location / {
root html;
index index.html index.htm;
client_max_body_size 5000m;
}
切记!!!修改完配置文件要重启!重启!重启!