php获取上传文件类型 获取文件后缀

 代码如下 复制代码

//获得图片的格式,包括jpg,png,gif
function get_type($img_name)//获取图像文件类型
{
 if (preg_match("/.(jpg|jpeg|gif|png|bmp)$/i", $img_name, $matches)){
  $type = strtolower($matches[1]);
 }else{
  $type = "string";
 }
 return $type;
}

//判断上传文件类型
$allowedextensions = array("txt","csv","htm","html","xml",  
    "css教程","doc","xls","rtf","ppt","pdf","swf","flv","avi",  
    "wmv","mov","jpg","jpeg","gif","png");   
    foreach ($_files as $file) {  
    if ($file['tmp_name'] > '') {  
      if (!in_array(end(explode(".",  
            strtolower($file['name']))),  
            $allowedextensions)) {  
       die($file['name'].' is an invalid file type!<br/>'.  
        '<a href="网页特效:history.go(-1);">'.  
        '&lt;&lt go back</a>');  
      }  
}  
}  

//另类的读取文件与图片类型

function checktitle($filename) {
$file     = fopen($filename, "rb");
$bin      = fread($file, 2); //只读2字节
fclose($file);
$strinfo  = @unpack("c2chars", $bin);
$typecode = intval($strinfo['chars1'].$strinfo['chars2']);
$filetype = "";
switch ($typecode)
{
 case 7790:
 $filetype = 'exe';
 break;
 case 7784:
 $filetype = 'midi';
 break;
 case 8297:
 $filetype = 'rar';
 break;
 case 255216:
 $filetype = 'jpg';
 break;
 case 7173:
 $filetype = 'gif';
 break;
 case 6677:
 $filetype = 'bmp';
 break;
 case 13780:
 $filetype = 'png';
 break;
 default:
 $filetype = 'unknown'.$typecode;
}
//fix
if ($strinfo['chars1']=='-1' && $strinfo['chars2']=='-40' ) {
return 'jpg';
}
if ($strinfo['chars1']=='-119' && $strinfo['chars2']=='80' ) {
return 'png';
}
return $filetype;
}

 

?>

时间: 2024-11-16 01:20:26

php获取上传文件类型 获取文件后缀的相关文章

Asp.Net + Flash 上传的组件,文件上传后返回值问题,急!

问题描述 我从网上下载了一个Asp.Net+Flash上传的组件,自己改了下,现在已实现以下功能: 1.上传多个文件: 2.定义上传各种类型的文件: 3.定义上传路径: 4.支持上传大文件. 主页面:Default.aspx(页面链接包含了:Default.aspx.cs.upload.swf.UploadVideo.ashx) 上传文件页面:UploadVideo.ashx 现在有个很大的问题:就是UploadVideo.ashx页面上传文件后,要如何将文件名称(处理结果)返回到Default

php获取上传文件名的文件类型

php教程获取上传文件名的文件类型 $imgname = $_FILES["file"]["name"]; //获取上传的文件名称 $filetype = pathinfo($imgname, PATHINFO_EXTENSION);//获取后缀 $newname = date("Ymdhis").".".$filetype; //构建新名称 再看 $file = 'www.111cn.net.gif'; echo getfi

jQuery获取上传文件的名称的正则表达式_jquery

方法一: $('input[type="file"]').on('change', function() { var reg = /[^\\\/]*[\\\/]+/g; //匹配文件的名称和后缀的正则表达式 var name = $(this).val().replace(reg, ''); var postfix = /\.[^\.]+/.exec(name);//获取文件的后缀 var text =name.substr(0,postfix['index']);//获取没有后缀的名

html5获取上传文件信息的例子

在html4中使用input[type=file]来上传文件,在html5中也是如此,但却比html4丰富了许多. 如: <input type="file" name="aa" multiple="multiple" id="aa" value="" /> 增加了multiple属性,加上以后可以同时上传多个文件. <input type="file" name=&q

javascript-js 获取上传文件的绝对路径

问题描述 js 获取上传文件的绝对路径 各位,用标签上传文件,想要获取上传文件的绝对路径 不知道怎样获取 麻烦告知 感激不尽 解决方案 不是所有的浏览器都会报告绝对路径.如果浏览器不报告,不允许js访问,没有办法获得. 如果限定ie,特定的版本,可以用fso或者自己写activex 解决方案二: 浏览器安全问题,ie7+需要配置过安全才会返回实际路径,其他浏览器不行.而且你获取客户端路径也没什么意义..除非是黑客.. 解决方案三: 在html中 ???? ???? function?upload

PHP使用APC获取上传文件进度

今天发现使用PHP的APC也能获取上传文件的进度.这篇文章就说下如何做. 安装APC 首先安装APC的方法和其他PHP模块的方法没什么两样,网上能找出好多 phpinfo可以看到APC的默认配置有: apc.rfc1867 看apc.rfc1867这个配置项: http://cn2.php.net/manual/en/apc.configuration.php#ini.apc.rfc1867   文档说的是如果你上传文件的时候,在POST中带有APC_UPLOAD_PROGRESS字段,那么AP

activexobject-ActiveXObject获取上传文件的二进制流

问题描述 ActiveXObject获取上传文件的二进制流 支持W3C File的浏览器,都可以使用FileReader对象获取上传文件的二进制流. 但是IE不支持,IE11都不支持. @showbo 感谢大虾帮我解决了问题.但是IE是个头疼的问题. 再次请教各位大虾,有什么能让IE获取上传文件二进制流的方法么? 不能使用flash,因为面向的用户特殊,他们基本不会电脑,更别说安装flash. IE获取不到ActiveXObject对象,我可以写bat文件,让用户下载后执行bat后再进行上传文件

SmartUpload组件获取上传文件路径出错

问题描述 今天我在使用上传组件SmartUpload上传文件时 获取文件上传路径是null这是表单中的代码: 照片:<input type="file" name="ufile"><br/>这是提交页的代码:String file1=smart.getRequest().getParameter("ufile"); 输出file1里面的值是null我应该如何的 获取上传文件的路径 把它存入数据库当中 (数据库当中存放的是图

reamweaver 权限-Dreamweaver获取、上传.asp.mdb等文件,提示目录不存在或权限错误。

问题描述 Dreamweaver获取.上传.asp.mdb等文件,提示目录不存在或权限错误. IIS发布的网站,通过Dreamweaver 远程站点webDAV连接服务器后,获取.上传.asp.mdb等文件时,提示目录不存在或权限错误.

java或js(可用jquery)如何获取上传文件原始路径名?

问题描述 上传文件时,我想获取客户端上传文件的原始路径.第一考虑,当然是使用js,例如网上可以找到的: function getPath(obj) { if (obj) { if (window.navigator.userAgent.indexOf("MSIE") >= 1) { obj.select(); return document.selection.createRange().text; } else if (window.navigator.userAgent.in