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

php判断文件大小

发布时间: 2023-06-26 23:56:43

㈠ 如何通过配置php文件限制上传文件的大小

在网站开发的过程中,为了确保能够充分利用服务器的空间,在开发上传功能时,必须对上传文件的大小进行控制。那么我们如何进行对上传文件的大小进行控制呢?

控制文件的大小可以从两个方面入手:

第一个是在PHP的配置文件php.ini中对上传文件进行控制,如果上传文件超过它指定的范围,那么执行上传就会识别。

第二个是在PHP配置文件允许的范围内,在程序中对上传文件的大小进行控制!

一:通过配置文件控制上传文件

PHP中通过php.ini文件对上传文件进行控制,包括是否支持上传,上传文件的临时文件目录,上传文件的大小,指令执行时间,指令分配的内存空间。

在php.ini中,定义 File Uploads项,完成对上传相关选项的设置。上传相关选项的含义如下:

file_uploads:如果值是 no,说明服务器支持上传文件,如果为off ,那么则不支持。一般默认是支持的,这个不用修改!

upload_tmp_dri:上传文件临时目录。文件被成功上传之前,文件首先存放到服务器端的临时目录中。多数使用系统默认目录,但是也可以自行设置!

upload_max_filesize:服务器允许上传文件的最大值,以MB为单位,系统默认为2MB,如果网站需要上传超过2MB的数据,那么就要修改这个值!

上述是php.ini中 File_Uploads项中与上述相关参数设置说明,除了File_Uploads项中的内容外,在php.ini中还有其他几个选项会影响到文件的上传~

max_execution_time:PHP中一个指令所能执行的最大时间,单位为秒。该选项在上传超大文件时必须要修改,否则即使上传文件在服务器允许的范围内,但是若超过了指令所能执行的最大时间,仍然无法实现上传~

memory_limit:PHP中一个指令所分配的内存空间,单位是 MB 。它的大小同样会影响得到超大文件的上传!

二:在程序中控制上传文件

在客户端控制上传文件应用的是 form 表单中的 enctype 和 method属性以及隐藏域 MAX_FILE_SIZE。

enctype = “multipart/form-data”:指定表单编码数据方式。

method = “post”:指定数据的传输方式。

<input type = "hidden" name="MAX_FILE_SIZE" value=“10000”/>:通过隐藏域控制上传文件的大小(单位为字节),该值不能超过php.ini配置文件中 upload_max_filesize 选项设置的值,它不能喝完全控制上传文件的大小。只是可以避免一些不必要的麻烦。

技巧:

在应用隐藏域<input type = "hidden" name="MAX_FILE_SIZE" value=“10000”/>控制文件上传大小时,必须将其放置在文件域之前,否则是不能发挥作用的!

㈡ php如何判断上传多个文件的类型及大小等信息

<?php
if (isset($_FILES['upload']['name']))
{
$fcount = count($_FILES['upload']['name']);

for ($i = 0; $i < $fcount; $i++)
{
$fname = $_FILES['upload']['name'][$i];
$path_parts = pathinfo($fname);
if (strtolower($path_parts['extension']) != 'ppt')
{
echo $_FILES['upload']['name'][$i] . ' 不是ppt文件. <br />' ;
}
}
for ($i = 0; $i < $fcount; $i++)
{
$fsize = (int)$_FILES['uplode']['size'][$i];
if ($fsize > 2048576)
{
echo '文件超过指定的大小: ' . $_FILES['upload']['name'][$i] . ":" . $fsize . '<br />';
}
}
for ($i = 0; $i < $fcount; $i++)
{
$ferror = $_FILES['uplode']['error'][$i];
if ($ferror)
{
echo '文件上传错误: ' . $_FILES['upload']['name'][$i] . ":" . $ferror. '<br />';
}
}
} else
{
echo '上传文件不正确.';
}

?>

㈢ php检测某目录是否有超过20MB的文件

如果php实现的话,就遍历目录,判断是否是文件,filesize获取文件大小,比较即可:

<?php
$path=".";//.是当前目录,你可以换成你的目录
foreach(scandir($path)as$v){
if(!is_dir($v)){//如果不是目录,就是文件了
$size=filesize($v);
if($size>20971520){//20971520==20M
echo$v."#".$size."<br>";;
}
}
}
?>

㈣ php判断文件大小

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

㈤ PHP怎么获取文件大小

filesize
(PHP 4, PHP 5)
filesize — 取得文件大小

说明
int filesize ( string $filename )
返回文件大小的字节数,如果出错返回 FALSE 并生成一条 E_WARNING 级的错误。
Note: 因为 PHP 的整数类型是有符号的,并且大多数平台使用 32 位整数,filesize() 函数在碰到大于 2GB 的文件时可能会返回非预期的结果。对于 2GB 到 4GB 之间的文件通常可以使用 sprintf("%u", filesize($file)) 来克服此问题。
Note: 此函数的结果会被缓存。参见 clearstatcache() 以获得更多细节。
Tip
自 PHP 5.0.0 起, 此函数也用于某些 URL 包装器。请参见 Supported Protocols and Wrappers以获得支持 stat() 系列函数功能的包装器列表。

Example #1 filesize() 例子
<?php

// 输出类似:somefile.txt: 1024 bytes

$filename = 'somefile.txt';
echo $filename . ': ' . filesize($filename) . ' bytes';

?>

参见 file_exists()。

㈥ 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];
}
热点内容
引用jar怎么发布到服务器 发布:2025-02-12 01:07:44 浏览:333
旧电脑开服务器 发布:2025-02-12 01:02:50 浏览:277
电脑服务器两个电源什么意思 发布:2025-02-12 00:55:15 浏览:220
linux外网不能访问端口 发布:2025-02-12 00:55:13 浏览:438
安卓系统哪里可以看充电次数 发布:2025-02-12 00:53:53 浏览:723
如何选物理服务器cpu 发布:2025-02-12 00:48:22 浏览:68
怎么买编程 发布:2025-02-12 00:31:42 浏览:932
固态硬盘如何做缓存盘 发布:2025-02-12 00:19:48 浏览:519
cm13源码下载 发布:2025-02-12 00:13:58 浏览:554
lang编译器 发布:2025-02-12 00:13:56 浏览:561