当前位置:首页 » 编程语言 » php获取文件大小

php获取文件大小

发布时间: 2022-06-11 10:53:24

php 读取zip包的大小

functionget_zip_originalsize($filename){
$size=0;
$resource=zip_open($filename);
while($dir_resource=zip_read($resource)){
$size+=zip_entry_filesize($dir_resource);}
zip_close($resource);return$size;}
$size=get_zip_originalsize('file.zip');
echo"originalsize:$sizebytes ";

㈡ php判断文件大小

$filesize=abs(filesize($filename));
if($filesize<5120){ //小于5K
//执行代码
}else{ //大于5K
//执行代码
}
函数filesize()返回的是以字节为单位的文件大小。参数是文件名

㈢ php 如何获取文件大小

filesize() 返回文件大小的字节数,如果出错返回 FALSE 并生成一条 E_WARNING 级的错误。

㈣ 如何用PHP获取远程大文件的大小

1、用file_get_contents或者fopen、file、readfile等函数读取url的时候,会创建一个名为$http_response_header的变量来保存http响应的报头.
示例代码一:
[php]viewplain<?php$url='http://www..com';$html=file_get_contents($url);print_r($http_response_header);//输出结果Array([0]=>HTTP/1.1200OK[1]=>Date:Tue,06Nov201208:51:01GMT[2]=>Server:BWS/1.0[3]=>Content-Length:9803[4]=>Content-Type:text/html;charset=gbk[5]=>Cache-Control:private[6]=>Expires:Tue,06Nov201208:51:01GMT[7]=>Set-Cookie:BAIDUID=:FG=1;expires=Tue,06-Nov-4208:51:01GMT;path=/;domain=..com[8]=>P3P:CP="OTIDSPCORIVAOURINDCOM"[9]=>Connection:Close)?>2、使用fopen等函数打开的数据流信息可以用stream_get_meta_data来获取。示例代码二:[php]viewplain<?php$fp=fopen($url,'r');print_r(stream_get_meta_data($fp));fclose($fp);//输出结果Array([wrapper_data]=>Array([0]=>HTTP/1.1200OK[1]=>Date:Tue,06Nov201208:54:22GMT[2]=>Server:BWS/1.0[3]=>Content-Length:9803[4]=>Content-Type:text/html;charset=gbk[5]=>Cache-Control:private[6]=>Expires:Tue,06Nov201208:54:22GMT[7]=>Set-Cookie:BAIDUID=:FG=1;expires=Tue,06-Nov-4208:54:22GMT;path=/;domain=..com[8]=>P3P:CP="OTIDSPCORIVAOURINDCOM"[9]=>Connection:Close)[wrapper_type]=>http[stream_type]=>tcp_socket[mode]=>r[unread_bytes]=>0[seekable]=>[uri]=>http://www..com[timed_out]=>[blocked]=>1[eof]=>)?>3、get_headers()也可以获取请求url的响应报文。示例代码三:[html]viewplain<?phpprint_r(get_headers($url));Array([0]=>HTTP/1.1200OK[1]=>Date:Tue,06Nov201208:58:41GMT[2]=>Server:BWS/1.0[3]=>Content-Length:9803[4]=>Content-Type:text/html;charset=gbk[5]=>Cache-Control:private[6]=>Expires:Tue,06Nov201208:58:41GMT[7]=>Set-Cookie:BAIDUID=:FG=1;expires=Tue,06-Nov-4208:58:41GMT;path=/;domain=..com[8]=>P3P:CP="OTIDSPCORIVAOURINDCOM"[9]=>Connection:Close)?>4、php5中新增的参数context使这些函数更加灵活,通过它我们可以定制http请求,甚至post数据。

㈤ PHP获取指定路径文件大小

filesize() 函数返回指定文件的大小。

若成功,则返回文件大小的字节数。若失败,则返回 false 并生成一条 E_WARNING 级的错误。
语法
filesize(filename)

参数 描述

filename 必需。规定要检查的文件。

提示:本函数的结果会被缓存。请使用 clearstatcache() 来清除缓存。

例子
<?php
echo 'test.txt文件的大小为:' , filesize("test.txt");
?>

输出:
test.txt文件的大小为:20

㈥ 如何获得php配置文件上传文件大小

1、php.ini:upload_max_filesize 所上传的文件的最大大小。默认值2M。

2、php.ini:memory_limit 本指令设定了一个脚本所能够申请到的最大内存字节数,默认值8M。如果不需要任何内存上的限制,必须将其设为 -1。如果内存不够,则可能出现错误:Fatal error: Allowed memory size of X bytes exhausted (tried to allocate Y bytes)

3、php.ini:post_max_size 设定POST数据所允许的最大大小。此设定也影响到文件上传。要上传大文件,该值必须大于 upload_max_filesize。

㈦ php检测上传文件大小的问题

在用PHP进行文件上传的操作中,需要知道怎么控制上传文件大小的设置,而文件可传大小是受到多种因素制约的,现总结如下:
1、php.ini:upload_max_filesize 所上传的文件的最大大小。默认值2M。

2、php.ini:memory_limit 本指令设定了一个脚本所能够申请到的最大内存字节数,默认值8M。如果不需要任何内存上的限制,必须将其设为 -1。如果内存不够,则可能出现错误:Fatal error: Allowed memory size of X bytes exhausted (tried to allocate Y bytes)

3、php.ini:post_max_size 设定POST数据所允许的最大大小。此设定也影响到文件上传。要上传大文件,该值必须大于 upload_max_filesize。

4、php.ini:max_execution_time = 30 ; Maximum execution time of each script, in seconds

5、php.ini:max_input_time = 60 ; Maximum amount of time each script may spend parsing request data

6、如果用到mysql的BLOB进行二进制文件存储,则需要设置my.ini:max_allowed_packet=xxM

7、httpd.conf
在 Apache 里面有一个选项是 LimitRequestBody,这个选项可以限制用户送出的 HTTP 请求内容。这个选项可以在 .htaccess 或 httpd.conf 里使用,而如果在 httpd.conf 内使用,分别可以用在 virtualhost 或目录属性设定。而 LimitRequestBody 的设定值是介乎 0 (无限制) 至 2147483647 (2GB)。
例如要在目录 D:/AppServ/www 设定上传限制为 100K,可以在 .htaccess 或 httpd.conf 加入以下语句:

LimitRequestBody 1024000000
Options Indexes FollowSymLinks MultiViews ExecCGI
AllowOverride All
Order allow,deny
Allow from all

LimitRequestBody 1024000000Options Indexes FollowSymLinks MultiViews ExecCGIAllowOverride AllOrder allow,denyAllow from all

如果透过 .htaccess 设定,储存档案后会立即生效;如透过 httpd.conf 设定,须要重新启动 Apache。
PHP关于文件上传部分,特别提到表单隐藏域:MAX_FILE_SIZE,意思是接收文件的最大尺寸。文档中给出的例子如下:

<form enctype="multipart/form-data" action="_URL_" method="POST">
<input type="hidden" name="MAX_FILE_SIZE" value="30000">
Send this file: <input name="userfile" type="file">
<input type="submit" value="Send File">
form>

Send this file:

这里设置MAX_FILE_SIZE = 30000,期待一种可能,使得浏览器在传送文件之前能够依此作出预先判断,如果文件尺寸大于30000字节,则不执行实际的POST动作。也就是不往服务器发送文件内容,而是直接在客户端提醒用户“你试图上传的文件超过30000字节”。
这的确是一个非常棒的主张,但在现实中却暂时无法实现。不是因为这个限制可以“被简单地绕过”,而是IE和FireFox这两个主流浏览器都不支持这个特性。PHP的这个建议尚未被采纳。

MAX_FILE_SIZE还有一个用场:后台PHP会判断接收到的文件大小是否大于这个值,如果超出,$_FILES['thisfile']['error']会被设置为UPLOAD_ERR_FORM_SIZE(2),同时放弃保存临时文件,将$_FILES['thisfile']['size']置0。
这个例子,没问题,表现正常,当我试图上传一个40多K的文件时,PHP程序报告“文件超过MAX_FILE_SIZE”。
但是,如果我们将表单中的MAX_FILE_SIZE从30000减少到1000,情形又如何呢?

上传800字节的文件,正常;
上传40K的文件,PHP报告文件过大,也正常;
上传3000个字节的文件,PHP未报告错误,它成功保存了文件!出乎意料!

问题就出在main/rfc1867.c中判断文件是否超长的这部分代码上。php每次从buffer中读取FILLUNIT字节长度的内容后,首先判断“已经读到的内容长度(total_bytes)”是否大于MAX_FILE_SIZE,然后再增加“已经读到的内容长度(total_bytes)”。这样一来,和预计的结果之间至多会有FILLUNIT字节的误差,而FILLUNIT=1024*5=5K。(点击bug了解详细内容)
这就是说,当MAX_FILE_SIZE<5K时,上传一个大于MAX_FILE_SIZE,但是小于5K的文件是没有问题的。
当然,因为这个设置很容易被绕过,所以服务器端编程不应当依赖于MAX_FILE_SIZE。而且,5K到底是个很小的数值,对大多数上传文件的表单来说没有影响。
PHP中post_max_size,upload_max_filesize, MAX_FILE_SIZE的设置,和客户端上传给服务器端的流量大小无关。
Apache服务器从客户端接收长度不超过LimitRequestBody字节数的请求,然后传送给php模块,php模块再决定是否保存成临时文件,设置$_FILES全局变量,移交给script进一步处理。
这个Apache的LimitRequestBody选项缺省值=0,允许Request body的最大字节数是2G(Linux + Apache)
最后还要注意的是:
html本身能够post数据也是有限制的,不能超过2G。
ftp客户端有文件偏移指针的2GB边界限制,未使用特殊编译flag编译的ftp服务器端或者客户端,无论在什么FS中都不支持大于2GB的文件。不知道PHP会不会也有这种情况。

㈧ php获取远程文件的大小

本文实例讲述了php获取远程文件大小的方法,分享给大家供大家参考。具体实现方法如下:
/*
**功能:获取远程文件的大小,返回值的单位是:字节
*/
function
get_fileSize($url){
if(!isset($url)||trim($url)==''){
return
'';
}
ob_start();
$ch=curl_init($url);
curl_setopt($ch,CURLOPT_HEADER,1);
curl_setopt($ch,CURLOPT_NOBODY,1);
$okay=curl_exec($ch);
curl_close($ch);
$head=ob_get_contents();
ob_end_clean();
$regex='/Content-Length:\s([0-9].+?)\s/';
$count=preg_match($regex,$head,$matches);
return
isset($matches[1])&&is_numeric($matches[1])?$matches[1]:'';
}
希望本文所述对大家的php程序设计有所帮助,大家能够喜欢小便的文章,大家共同进步。

㈨ php如何检测某文件夹里的各个文件夹大小

可以使用scandir()和filesize()函数实现:

$path=".";//.是当前目录,你可以换成自己的目录地址
foreach(scandir($path)as$v){
if(!is_dir($v)){//如果不是目录,就是文件了
$size=filesize($v);
echo"文件:".$v."大小:".byte_format($size)."<br>";//单位是kb
}
}

//格式化函数
functionbyte_format($size,$dec=2){
$a=array("B","KB","MB","GB","TB","PB");
$pos=0;
while($size>=1024){
$size/=1024;
$pos++;
}
returnround($size,$dec)."".$a[$pos];
}

㈩ php 服务器限制了上传大小1M 那能不能获取大于一兆的文件大小

修改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 为佳.

热点内容
手机f加密 发布:2024-05-19 03:28:47 浏览:225
用什么密码写日记 发布:2024-05-19 03:27:57 浏览:303
数据库access2003 发布:2024-05-19 02:49:39 浏览:620
碧蓝航线pc挂机脚本 发布:2024-05-19 02:30:03 浏览:589
脚本fir 发布:2024-05-19 02:28:57 浏览:261
阿里云独享服务器 发布:2024-05-19 02:23:54 浏览:253
织梦源码ga 发布:2024-05-19 02:23:20 浏览:571
java文件名后缀 发布:2024-05-19 02:14:39 浏览:956
快手点榜脚本 发布:2024-05-19 02:08:44 浏览:163
pythonforinkeys 发布:2024-05-19 01:55:44 浏览:793