Php 调整图像大小并创建缩略图
所以我有一个上传脚本,它将图像上传到一个文件夹,并将图像的路径保存在db上。我需要帮助将图像大小调整为800x600并为其创建一个拇指。还有一个问题,我需要在db中保存thumb路径吗 我想上传调整大小的图像(800x600),我不想在服务器上保存原始图像(不调整大小) 以下是我得到的:Php 调整图像大小并创建缩略图,php,image,upload,resize,Php,Image,Upload,Resize,所以我有一个上传脚本,它将图像上传到一个文件夹,并将图像的路径保存在db上。我需要帮助将图像大小调整为800x600并为其创建一个拇指。还有一个问题,我需要在db中保存thumb路径吗 我想上传调整大小的图像(800x600),我不想在服务器上保存原始图像(不调整大小) 以下是我得到的: <?php include('dbconnect.php'); if(isset($_POST['enviar'])) { //START IF $nomesitio = $_POST['nome']
<?php
include('dbconnect.php');
if(isset($_POST['enviar']))
{ //START IF
$nomesitio = $_POST['nome'];
$horario = $_POST['horario'];
$contato = $_POST['contato'];
$morada = $_POST['morada'];
$tipo = $_POST['tipo'];
$freguesias = $_POST['freguesias'];
$arqName = $_FILES['arquivo']['name'];
$arqType = $_FILES['arquivo']['type'];
$arqSize = $_FILES['arquivo']['size'];
$arqTemp = $_FILES['arquivo']['tmp_name'];
$arqError = $_FILES['arquivo']['error'];
$tiposPermitidos = array('image/gif', 'image/jpeg', 'image/jpg', 'image/png');
$tamanhoPermitido = 6024 * 3000;
if ($arqError == 0)
{
if(array_search($arqType, $tiposPermitidos) === false)
{
$retorno = '<span class="no">O tipo de arquivo enviado é invalido!</span>' ;
}
elseif ($arqSize > $tamanhoPermitido)
{
$retorno = '<span class="no">O tamanho do arquivo enviado e maior que o limite!</span>';
}
else
{
$pasta = 'images_sitios/';
$extensaoTemp = explode('.',$arqName);
$extensao = strtolower(end($extensaoTemp));
$nome = time(). '.' . $extensao;
$upload = move_uploaded_file($arqTemp, $pasta . $nome);
if ($upload === true)
{
$ficheiro = $pasta.$nome;
}
else
{
$retorno = '<span class="no">Nao foi possivel fazer o upload da imagem!</span>';
}
}
}
if(empty($ficheiro))
{
$retorno = '<span class="quase">Insira a imagem!</span>';
}
if(empty($retorno))
{
$query = mysql_query("INSERT INTO sitio (nome_sitio, horario, contato, morada, imagem, id_tipo, id_freguesia) VALUES ('$nomesitio','$horario','$contato','$morada','$ficheiro','$tipo','$freguesias')") or die (mysql_error());
if($query === true)
{
$sucesso = '<span class="yes">Sitio inserido com sucesso!</span>';
echo $sucesso;
}
}
else
{
echo $retorno;
}
} //END IF
?>
您可以使用它来执行图像大小调整
// *** Include the class
include("resize-class.php");
$data = file_get_contents($_FILES['image']['tmp_name']);
file_put_contents("sample.jpg", $data);
// *** 1) Initialize / load image
$resizeObj = new resize('sample.jpg');
// *** 2) Resize image (options: exact, portrait, landscape, auto, crop)
$resizeObj -> resizeImage(800, 600, 'crop');
常规编程提示:使用空格代替制表符。这样你就不会有这样的格式问题了。大多数文本编辑器都提供此选项。(或者任何其他图像上传类,都有很多)。关于thumb路径-我更愿意创建两个文件夹-一个用于thumb,一个用于大图像-并以相同的名称保存文件->因此,您需要在db表中为此创建一个字段。因此,您是说在创建thumb之后,将该文件移动到喜欢图像的位置/拇指,并使用相同的名称?所以我应该用$nome把名字写在拇指上,对吗?所以他们有了相同的名字。@PedroFidalgo-是的,我这样做了,也许其他人有另一个想法,但这对我来说更容易。然而,调整图像大小/删除主图像很简单-但不知何故。。。无聊:)。因此,请使用一个好的类:好的,我让它工作了。当我插入一个位置时,图像的大小将调整为800x600到images_sitios/并生成一个拇指到images_sitios/缩略图。名字是一样的,所以我想我得到了我想要的:)