感觉使用一段thinkphp框架后,虽然这个框架很多人认可,但是对基础而言其实一点帮助都没有。反而增加负担。 我个人感觉对这个框架其实不是太喜欢。主要是我不熟悉的缘故,使用起来比较吃力。
今天开始回归一些比较基础内容记录一些基础。之前因为上传图片调用开源类发现没有了解到原来图片的含义导致使用上出现很多问题。
下面记录一下笔记:
1.图片上传的类型检测
2.图片大小检测
图片上传的类型,编写图片类型检测,这里会用数组去检测是否有对应的类型。
图片大小判断。下面这个程序还没加上去。只有判断上传的大小是否满足即可。
使用 move_uploaded_file 的时候,一开始把一个http://xxx.com.cn/images 这样的链接 填写进去,发现怎么不行,貌似这个只能填写文件夹的路径。在window下,可以填写相对和绝对路径
linux下,相对路径没多大问题。还没测试像usr/local/images 这样的路径 不知道是否可以成功。linux对图片文件夹下创建文件夹还要做授权。
上传过程常用的要知道的点。
FILES[“file”][“size”]大小
_FILES[“file”][“type”] 类型
FILES[“file”][“name”]文件名
_FILES[“file”][“tmp_name”] 临时文件名
$_FILES[“file”][“error”] 错误
<?php
if(isset($_FILES["file"]))
{
//打印相关的文件信息
$file = $_FILES["file"];
//检测是否是符合的图片类型
$types = array("jpg","gif","jpeg","png");
//获取图片类型
$imgType = substr(strrchr($file['name'], '.'), 1);
//检测类型是否存在
if(!in_array(strtolower($imgType),$types))
{
$text = implode(",",$types);
echo "您只能上传以下类型文件: ",$text,"<br>";
return;
}
//移动位置
if(is_uploaded_file($file['tmp_name']))
{
$floder = date("Y-m-d");
$storeUrl = '../images/'.$floder.'/';
$randomName = time().mt_rand(1000,9999).".".$imgType;//拼接一下新的名字
if (!file_exists($storeUrl))
{
mkdir ($storeUrl);
}
$storeUrl = $storeUrl.$randomName;
if(move_uploaded_file($file['tmp_name'], $storeUrl))
{
echo "<script type='text/javascript' >alert('上传成功')</script>";
}
else
{
echo "<script type='text/javascript' >alert('上传失败')</script>";
}
}
else
{
echo "<script type='text/javascript' >alert('上传失败')</script>";
}
}
?>
上传表单提交 要加上 enctype=”multipart/form-data” 属性值
这里使用input 的file类型处理。
<html>
<head>
<title>文件上传实例</title>
</head>
<body>
<form method="post" action="upload.php" enctype="multipart/form-data">
<input name="file" type="file" value="浏览" >
<input type="hidden" name="MAX_FILE_SIZE" value="2000000">
</label>
<input type="submit" value="上 传" name="upload">
</form>
</body>
</html>