当我上传一个文件(.jpg)并执行var_dump($_FILES['img'])
时,我会得到如下所示的内容:
array
'name' => string 'help_clip_image020.jpg' (length=22)
'type' => string 'image/jpeg' (length=10)
'tmp_name' => string '/tmp/phpfa9gSr' (length=14)
'error' => int 0
'size' => int 35504
但是,使用此代码:
include("resize-class.php");
// *** 1) Initialise / load image
$resizeObj = new resize($_FILES['img']);
// *** 2) Resize image (options: exact, portrait, landscape, auto, crop)
$resizeObj -> resizeImage(200, 200, 'crop');
// *** 3) Save image
$resizeObj -> saveImage('sample-resized.jpg', 100);
我会得到一个黑色填充的图像。但是使用绝对路径,例如:
$resizeObj = new resize('http://leandrovieira.com/projects/jquery/lightbox/photos/image1.jpg');
一切正常。所以我的问题是:我需要在转换之前将图像存储在主机中?我想避免这种情况,因为我只需要缩略图。
另外:$_FILES['img']['tmp_name']
没有解决问题。
使用 $_FILES['img']['tmp_name'];
您的解决方案使用整个数组作为参数
我需要这样的东西:
if(move_uploaded_file($img['tmp_name'], $path.$yourImgName_extension)){
$resizeObj = new resize($path.$yourImgName_extension);
$resizeObj -> resizeImage(200, 200, 'crop');
$resizeObj -> saveImage($path.'sample-resized.jpg', 100);
}