主题: 图片文件名称为中文,会提示 【不允许上传的文件类型,只允许上传以下类型文件:...】bug |
作者: 暴风雪, 发布日期: 2009-06-08 15:15:56, 浏览数: 6917 |
图片文件名称为中文,会提示 【不允许上传的文件类型,只允许上传以下类型文件:...】bug |
作者: yrz391656771, 发布日期: 2009-06-08 23:43:09 |
我使用重命名方式。 <?php //文件保存目录路径 $save_path = './../../upload/'; //文件保存目录URL $save_url = '/upload/'; //定义允许上传的文件扩展名 $ext_arr = array('gif', 'jpg', 'jpeg', 'png', 'bmp'); //最大文件大小 $max_size = 1048576; //更改目录权限 @mkdir($save_path, 0777); //有上传文件时 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); //检查扩展名 if (in_array($file_ext, $ext_arr) === false) { alert("上传文件扩展名是不允许的扩展名。"); } //移动文件 $ext = strtolower(substr(strrchr($file_name,'.'),1)); //获取扩展名 $new_path=date('YmdHis',time()) . '.' . $ext; //获取时间字符串,加上扩展名,用作新文件名,如:20090608145630.gif $file_path = $save_path . $new_path; //补全上传路径, if (move_uploaded_file($tmp_name, $file_path) === false) { alert("上传文件失败。"); } $file_url = $save_url . $new_path; //插入图片,关闭层 echo '<html>'; echo '<head>'; echo '<title>Insert Image</title>'; echo '<meta http-equiv="content-type" content="text/html; charset=utf-8">'; echo '</head>'; echo '<body>'; echo '<script type="text/javascript">parent.KE.plugin["image"].insert("' . $_POST['id'] . '", "' . $file_url . '","' . $_POST['imgTitle'] . '","' . $_POST['imgWidth'] . '","' . $_POST['imgHeight'] . '","' . $_POST['imgBorder'] . '");</script>'; echo '</body>'; echo '</html>'; } //提示,关闭层 function alert($msg) { echo '<html>'; echo '<head>'; echo '<title>error</title>'; echo '<meta http-equiv="content-type" content="text/html; charset=utf-8">'; echo '</head>'; echo '<body>'; echo '<script type="text/javascript">alert("'.$msg.'");history.back();</script>'; echo '</body>'; echo '</html>'; exit; } ?> |
回复 |