在我的php页面中我有<input type='file' name='aimage[]' id='aimage' />
以及用于获取此文件的代码段:
foreach($_FILES["aimage"]["tmp_name"] as $file)
{
/*** get the image info. ***/
if(is_uploaded_file($file) && getimagesize($file) != false){
$size = getimagesize($file);
/*** assign our variables ***/
$type = $size['mime'];
$imgfp = fopen($file, 'rb');
$size = $size[3];
// $name = $file['name'];
$maxsize = 99999999;
/*** check the file is less than the maximum file size ***/
//if($_FILES['aimage']['size'] < $maxsize )
// {
/*** connect to db ***/
$formvars['file'] = fread($imgfp, getimagesize($file));
虽然使用了foreach,但是我收到错误警告:fread()期望参数2很长,数组中给出了。这个错误的原因是什么?如何仅检查上传到站点的图像和代码检测到的其他文件?
答案 0 :(得分:4)
错误是由fread()的第二个参数引起的:getimagesize($file))
返回一个数组而不是long。 getimagesize返回一个数组(宽度,高度)
也许您想要使用filesize($file)
代替
答案 1 :(得分:0)
来自getimagesize
文档:
返回最多包含7个元素的数组。并非所有图像类型都会 包括通道和位元素。
索引0和1分别包含宽度和高度 图像。
注意:某些格式可能不包含图像或可能包含多个格式 图片。在这些情况下,getimagesize()可能无法正常运行 确定图像大小。 getimagesize()将返回零宽度 这些情况下的高度和高度。索引2是IMAGETYPE_XXX之一 指示图像类型的常量。
索引3是一个文本字符串,其正确的高度=“yyy”width =“xxx” 可以直接在IMG标记中使用的字符串。
mime是图像的对应MIME类型。这个信息可以 用于使用正确的HTTP Content-type标头传递图像:
示例#1 getimagesize()和MIME类型