0

所以我有一个上传脚本,将图像上传到文件夹,并将图像的路径保存在数据库中。我需要帮助将图像大小调整为 800x600 并为其创建拇指。还有一个问题,我需要将拇指路径保存在数据库中吗?

我想上传调整大小的图像(800x600),我不想在服务器上保存原始图像(不调整大小)

这是我得到的:

<?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
?>

我怎样才能做到这一点?提前致谢。

4

1 回答 1

0

您可以使用此调整大小类来执行图像大小调整。

// *** 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');  
于 2013-06-26T21:18:31.010 回答