php中的getimagesize和$ _FILES

时间:2014-12-02 14:44:14

标签: php file-upload

我知道在这个主题中有很多问题,我几乎尝试了每一个程序,但我的问题仍然相同......

问题 我正在尝试上传图像文件并希望获得图像高度和图像宽度,我搜索了很多并发现getimagesize会这样做,但是当我尝试这段代码时

$file=$_FILES['myfile'];
list($width, $height) = getimagesize($file);
$file_width=$width;
$file_height=$height;

然后显示此错误..

Warning: getimagesize() expects parameter 1 to be string, array given

在此错误之后,我会搜索有关该功能的更多内容,并尝试使用此代码....

list($width, $height) = getimagesize($_FILES['myfile']['tmp_name']);
    $file_width=$width;
    $file_height=$height;

执行代码后,什么都不会发生...

**更新**实际上我正在尝试获取图像的高度和宽度,并将信息保存在数据库中。所以我希望当用户上传图片然后在保存信息之前我得到图像文件的高度和宽度,另一件事是图像源将是任何这样的从usp或存储卡,所以不要说我通过完整路径作为getimagesize()中的参数。请提供适当的解决方案,如果有任何其他方法来获取文件的高度和宽度,请转介我。

3 个答案:

答案 0 :(得分:3)

首先您需要上传文件然后传递上传的位置

getimagesize("location_of_file/".$file_name);

OR

getimagesize($path['path'].'/'.$_POST['name']); 

OR

$file_name=$_FILES['fileToUpload']['name'];
getimagesize($target_dir.'/'.$file_name);  

OR

$file_tmp=$_FILES['fileToUpload']['tmp_name'];
list($width, $height) = getimagesize($file_tmp);
     $file_width=$width;
     $file_height=$height;

答案 1 :(得分:1)

检查一下。完成文件上传后,一切都应该没问题。

  $temporary_name = $file['painting_picture']['tmp_name'];

    if (is_uploaded_file($temporary_name)) {
        list($width, $height, $type, $attr) = getimagesize($temporary_name); 
    }

答案 2 :(得分:0)

您不对数据执行任何操作。尝试echo

if (isset($_FILES['myfile']['tmp_name'])) {
    list($file_width, $file_height) = getimagesize($_FILES['myfile']['tmp_name']);
    echo "The file dimensions is: width ".$file_width."px, height: ". $file_height."px";
}