用PHP实现单文件上传,要求只能上传jpg格式,文件大小2M以下,同名文件不能覆盖,不同
用PHP实现单文件上传,要求只能上传jpg格式,文件大小2M以下,同名文件不能覆盖,不同的错误要有不同的提示。...
用PHP实现单文件上传,要求只能上传jpg格式,文件大小2M以下,同名文件不能覆盖,不同的错误要有不同的提示。
展开
1个回答
展开全部
<?php
define('ROOT', dirname(dirname(dirname(dirname(__FILE__)))));
//文件保存目录路径
$save_path = ROOT . '/sWeb/upfile/kEditor/'.date('Ymd').'/';
if (!is_dir($save_path)) mkdir($save_path, 0777, true);
//文件保存目录URL
$save_url = $web_url . '/upfile/kEditor/'.date('Ymd').'/';
//定义允许上传的文件扩展名
$ext_arr = array('jpg', 'jpeg');
//最大文件大小
$max_size = 104857600;
//更改目录权限
@mkdir($save_path, 0777);
$img_id = time().mt_rand();
//有上传文件时
if (empty($_FILES) === false) {
//原文件名
$file_name = $_FILES['imgFile']['name'];
//服务器上临时文件名
$tmp_name = $_FILES['imgFile']['tmp_name'];
//文件大小
$file_size = $_FILES['imgFile']['size'];
//检查文件名
if (!$file_name) {
alert("请选择文件。");
}
//检查目录
if (@is_dir($save_path) === false) {
alert("上传目录不存在。");
}
//检查目录写权限
if (@is_writable($save_path) === false) {
alert("上传目录没有写权限。");
}
//检查是否已上传
if (@is_uploaded_file($tmp_name) === false) {
alert("临时文件可能不是上传文件。");
}
//检查文件大小
if ($file_size > $max_size) {
alert("上传文件大小超过限制。");
}
//获得文件扩展名
$temp_arr = explode(".", $file_name);
$file_ext = array_pop($temp_arr);
$file_ext = trim($file_ext);
$file_ext = strtolower($file_ext);
$imgtitle = empty($_POST['imgTitle']) ? $file_name : $_POST['imgTitle'];
//检查扩展名
if (in_array($file_ext, $ext_arr) === false) {
alert("上传文件扩展名是不允许的扩展名。");
}
//移动文件
//$file_path = $save_path . $file_name;
$file_path = $save_path . $img_id .".". $file_ext;
if (move_uploaded_file($tmp_name, $file_path) === false) {
alert("上传文件失败。");
}
//$file_url = $save_url . $file_name;
$file_url = $save_url . $img_id .".". $file_ext;
}
//提示,关闭层
function alert($msg)
{
echo '<html>';
echo '<head>';
echo '<title>error</title>';
echo '</head>';
echo '<body>';
echo '<script type="text/javascript">alert("'.$msg.'");history.back();</script>';
echo '</body>';
echo '</html>';
exit;
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询