如何在运行时预览图像?我有上传器脚本和重新调整大小的功能。但是在运行时没有显示图像。我不想保存iamge.Just调整大小并在运行时显示。图像必须从内存中显示而不是从目录中显示。我正在尝试这样的事情:
if ($_FILES['myfile']['error'] == 0)
{
$theImageToResize=$_FILES['myfile']['name'];
$afterResize=Resize($theImageToResize);
echo $theImageToResize.'---->image after resize';
}
[只是想从内存中显示图像。不是来自目录];
服务器端代码:
$savefolder = 'images'; //upload dir
$max_size = 35000; //in bytes
// image types
$allowtype = array('bmp', 'gif', 'jpg', 'jpeg', 'gif', 'png');
$res = '';
// if is received a valid file
if (isset ($_FILES['myfile'])) {
$type = end(explode(".", strtolower($_FILES['myfile']['name'])));
if (in_array($type, $allowtype)) {
if ($_FILES['myfile']['size']<=$max_size*1000) {
if ($_FILES['myfile']['error'] == 0) {
$thefile = $savefolder . "/" . $_FILES['myfile']['name'];
$theImageToResize=$_FILES['myfile']['name'];
header('Content-type: image/jpeg');
$res = '<img src="'.$theImageToResize.'" />';
}
}
else { $res = 'The file <b>'. $_FILES['myfile']['name']. '</b> exceeds max Size <i>'. $max_size. 'KB</i>'; }
}
else { $res = 'The file <b>'. $_FILES['myfile']['name']. '</b> has not an allowed File Tyle..'; }
}
$res = urlencode($res);
echo '<body onload="parent.doneloading(\''.$res.'\')"></body>';
答案 0 :(得分:0)
如果您拥有包含手头图像的二进制数据,则可以使用a data URI来回显嵌入图像的<img>
标记,如下所示:
$imageData = /* binary image data */
$mimeType = 'image/jpg'; // or image/gif or image/png, must be accurate
printf('<img src="data:%s;base64,%s" alt="resized image" />',
$mimeType, base64_encode($imageData));
这允许您输出已调整大小的图像作为网页的一部分。如果要显示 图像,只需输出合适的标题然后回显二进制数据:
header('Content-type: image/jpg');
echo $imageData;
die;
答案 1 :(得分:0)
$_FILES['myfile']['name']
包含文件名,而不是位置,请使用
$_FILES['myfile']['tmpname']
代替。 调整大小读取有关imagecopyresampled PHP函数的大小 - 关于PHP图像大小调整的教程很多。要输出图像,请使用imagejpeg或imagepng函数 - 此函数会将图像输出到浏览器。不要忘记正确的标题,例如
header('Content-type: image/jpeg');