doajaxfileupload.php,doajaxfileupload.php

该PHP脚本处理文件上传过程中的各种错误,包括文件大小限制、部分上传、临时文件缺失等,并针对上传的图片进行后缀合法性检查及大小限制。如果上传成功,会进行图片旋转操作以纠正可能的Exif信息导致的方向问题。最后,返回上传结果、图片名称、宽度和高度。
摘要由CSDN通过智能技术生成

$error = "";

$fileElementName = $_GET['n'];

if(!empty($_FILES[$fileElementName]['error'])){

switch($_FILES[$fileElementName]['error']){

case '1':

$error = 'The uploaded file exceeds the upload_max_filesize directive in php.ini';

break;

case '2':

$error = 'The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form';

break;

case '3':

$error = 'The uploaded file was only partially uploaded';

break;

case '4':

$error = 'No file was uploaded.';

break;

case '6':

$error = 'Missing a temporary folder';

break;

case '7':

$error = 'Failed to write file to disk';

break;

case '8':

$error = 'File upload stopped by extension';

break;

case '999':

default:

$error = 'No error code avaiable';

}

}elseif(empty($_FILES[$fileElementName]['tmp_name']) || $_FILES[$fileElementName]['tmp_name'] == 'none'){

$error = 'No file was uploaded..';

}else{

//验证上传文件大小是否超过4M

if($_FILES[$fileElementName]['size']>(1024*1024*4)){

$res["msg"] = "Exceed the limit size";

exit(json_encode($res));

}

//获取文件后缀名

$suffix=pathinfo($_FILES[$fileElementName]['name'],PATHINFO_EXTENSION);

//验证文件后缀是否合法

$allowSubFix=array('png','jpeg','jpg');

if(!in_array(strtolower($suffix),$allowSubFix)){

$res['msg']='The suffix is not legal';

exit(json_encode($res));

}

//上传文件

$logo=date('YmdHis',time()).rand(1000,9999).'.'.$suffix;

if(move_uploaded_file($_FILES[$fileElementName]['tmp_name'],'logo/'.$logo)){

$filename='logo/'.$logo;

if($suffix=='jpg' || $suffix=='jpeg'){

$ifo=@exif_read_data($filename,0,1) or die('no exif');

$deg=0;

if(array_key_exists('IFD0',$ifo)===true && array_key_exists('Orientation',$ifo['IFD0'])===true){

switch($ifo['IFD0']['Orientation']){

case 3:

$deg=180;

break;

case 6:

$deg=270;

break;

case 8:

$deg=90;

break;

}

}

rotata($filename,$deg);

}

$res["msg"] = 'upload success';

$res["n"] = $logo;

$imgTemp=getimagesize('logo/'.$logo);

$res["w"] = $imgTemp[0];

$res["h"] = $imgTemp[1];

}else{

$res["msg"] = "upload failed";

}

exit(json_encode($res));

}

function rotata($filename,$deg){

$im = @imagecreatefromjpeg($filename);

$rotate = imagerotate($im, $deg, 0);

// 输出图像

imagejpeg($rotate,$filename);

// 释放内存

imagedestroy($im);

imagedestroy($rotate);

}

?>

一键复制

编辑

Web IDE

原始数据

按行查看

历史

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值