文件上传后,php后台能够在$_FILES超级全局变量中获取到上传文件的各种信息,这里引用一段上传文件的说明:
http://yuweiqiang.blog.163.com/blog/static/6657041201071811832110/ 写道
PHP $_FILES数组内容如下:
$_FILES['myFile']['name'] 客户端文件的原名称。
$_FILES['myFile']['type'] 文件的 MIME 类型,需要浏览器提供该信息的支持,例如"image/gif"。
$_FILES['myFile']['size'] c。
$_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 $_FILES数组对文件上传结束后,默认地被存储在了临时目录中,这时您必须将它从临时目录中删除或移动到其它地方,如果没有,则会被删除。也就是不管是否上传成功,脚本执行完后临时目录里的文件肯定会被删除。所以在删除之前要用PHP的 copy() 函数将它复制到其它位置,此时,才算完成了上传文件过程。
$_FILES['myFile']['name'] 客户端文件的原名称。
$_FILES['myFile']['type'] 文件的 MIME 类型,需要浏览器提供该信息的支持,例如"image/gif"。
$_FILES['myFile']['size'] c。
$_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 $_FILES数组对文件上传结束后,默认地被存储在了临时目录中,这时您必须将它从临时目录中删除或移动到其它地方,如果没有,则会被删除。也就是不管是否上传成功,脚本执行完后临时目录里的文件肯定会被删除。所以在删除之前要用PHP的 copy() 函数将它复制到其它位置,此时,才算完成了上传文件过程。
这里面针对文件类型,其实是根据文件扩展(windows才有这个概念)名判断的,所以这个可以造假。
比如你可以将一个xxx.cmd的脚本修改为xxx.jpg上传后,$_FILES['myFile']['type'] 的值是image/jpeg;所以如果想要获取文件真实类型,就要舍弃这个信息,转而使用其他方法。
获取文件方法参考文章:http://www.cnblogs.com/see7di/archive/2011/07/02/2239691.html
注意其中mime_content_type被废弃了。
finfo_open我试了试是需要安装扩展;
使用exif_imagetype()函数获取图像类型常量,再用image_type_to_mime_type()函数将图像类型常量转换成图片文件的MIME类型也是需要启用php_mbstring.dll(Windows需要)和extension=php_exif.dll。在linux里有相应的so。
我这里给一个参考代码:
$image_type = image_type_to_mime_type(exif_imagetype($_FILES["file"]["tmp_name"])); // 结果是:image/jpeg
如果用finfo函数:
$mimetype = finfo_file($finfo, $_FILES["file"]["tmp_name"]); finfo_close($finfo); $image_type = image_type_to_mime_type(exif_imagetype($_FILES["file"]["tmp_name"])); // 结果是:image/jpeg; charset=binary
要注意:image_type函数也可以判断zip包,不过这两个方法获取到的文件类型描述不一样,另外,finfo函数获取到的文件类型最详细和准确。
相关推荐
C++标准库并不包含直接获取文件类型的方法,但可以使用Boost库中的`boost::filesystem`或自定义方法读取文件头进行判断。 8. **Swift**: 在Swift中,`FileManager`类提供了获取文件的URL和属性的方法,但不直接...
本文实例讲述了php获取文件类型和文件信息的方法。分享给大家供大家参考。具体实现方法如下: <?php $file = php.txt; //打开文件,r表示以只读方式打开 $handle = fopen($file,r); //获取文件的统计...
在PHP编程中,读取文件列表是一个常见的任务,特别是在处理文件操作、文件管理或构建文件索引时。本文将深入探讨如何使用PHP实现这一功能,同时解析提供的`readfile.php`示例文件中的关键代码。 首先,让我们了解...
PHP读取PPT文件的知识点: 1. 使用第三方类库PHPPowerPoint:在PHP中读取PPT文件时,可以借助PHPPowerPoint这个第三方类库来实现。PHPPowerPoint允许用户对PowerPoint文件进行操作,包括读取和写入PPTX格式的文件。...
在PHP编程中,读取远程文件是一个常见的任务,特别是在处理数据抓取、API交互或集成外部服务时。这个"一个读取远程文件的php函数类.zip"提供的功能就是解决这类问题的一个工具。在这个压缩包中,包含了一个PHP类,它...
显示文件类型图标通常需要服务器端知道文件的MIME类型,可以使用PHP的`mime_content_type()`函数或第三方库如finfo来获取。例如: ```php $mimeType = mime_content_type($file['tmp_name']); ``` 然后根据MIME...
这意味着当创建类的实例时,它可以自动检查服务器的配置,如上传大小限制、文件类型限制等,并根据这些信息设置类的内部状态。这一步至关重要,因为它确保了上传的文件符合服务器的安全和性能要求。 其次,获取类的...
本文将深入探讨如何使用PHP来读取Excel文件,主要围绕标题提及的"PHP读取excel文件的源代码类"这一主题。 首先,我们需要了解PHP中常用的库,如PHPExcel和phpspreadsheet,它们是用于读取、写入和操作Excel文件的...
获取文件的后缀名是文件处理中的一个基本需求,它可以帮助我们判断文件的类型,例如图片、文档或视频等,从而根据不同的文件类型进行相应的处理。在给定的标题和描述中,“php获取文件的后缀名”这一主题明确指向了...
PHP中,可以通过`fread()`函数读取文件的特定部分,`cURL`库则可以用于发送HTTP请求,实现文件分块上传。 为了实现断点续传,我们需要在服务器端保存每个文件块的状态。这包括已上传的块的数量、每个块的大小以及...
PhpSpreadsheet 是一个强大的 PHP 库,专门用于处理电子表格文件,它提供了读取和写入多种格式的功能,如 Microsoft Excel 的 .xlsx、.xls 以及 LibreOffice Calc 的 .ods 文件。这个库完全用 PHP 编写,无需依赖...
此代码还包含了一些额外的图像属性检查,如图像的宽度和高度,以及对允许上传的文件类型的限制。 需要注意的是,由于浏览器的安全策略,JavaScript在获取本地文件大小时受到很多限制。尤其是现代浏览器,出于安全...
文件类型判定是指通过 PHP 语言来判断上传文件的类型,通常使用 $_FILES 变量中的 type 属性来获取文件的 MIME 类型。MIME 类型是指文件的媒体类型,如 text/plain、image/jpeg 等。通过判断 MIME 类型,可以限制...
为了实现对特定类型文件的读取,我们还需要使用到 `pathinfo()` 函数来获取文件的扩展名。 1. **`pathinfo()` 函数**: - **作用**:获取路径信息。 - **语法**:`array pathinfo ( string $path [, int $options...
我们可以使用该函数来获取文件的 MIME 类型,并根据 MIME 类型来判断文件类型。 3. 使用文件后缀名 我们可以使用文件的后缀名来判断文件类型,但这并不是最可靠的方法,因为用户可以轻易地更改文件的后缀名。 PHP...
获取文件名后缀通常用于判断文件类型,以便于进行相应的处理或存储。在给定的部分内容中,通过`getFileSuffix`函数实现了基于MIME类型的文件后缀返回。然而,这个函数存在一个明显的问题:对于相同MIME类型(如'...
- 通过`pathinfo()`函数可以获取文件的扩展名,类的`checkFileType()`方法会对比上传文件的扩展名与允许的文件类型列表,不匹配则拒绝上传。 7. **文件重命名**: - 为了避免文件名冲突,通常会生成一个唯一的...