2013-06-26 123 views
0

因此,我有一個上傳腳本,將圖像上傳到文件夾,並將圖像路徑保存在數據庫中。我需要幫助將圖像調整到800x600併爲其創建一個縮略圖。還有一個問題,我需要在db中保存拇指路徑嗎?調整圖像大小並創建縮略圖

我要上傳調整後的圖像(800×600),我不想在服務器上保存的原始(不調整大小)

這裏是我的了:

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

我該怎麼辦這個?提前致謝。

+0

一般編程提示:使用空格有利於製表符。那麼你將不會有這樣的格式問題。大多數文本編輯器都提供此選項。 – hek2mgl

+0

http://www.verot.net/php_class_upload.htm(或任何其他圖像上傳類,其中有很多)。關於拇指路徑 - 我寧願創建兩個文件夾 - 一個用於拇指,一個用於大圖像 - 並以相同名稱保存文件 - >因此,您需要在db表中爲此設置一個字段。 – sinisake

+0

所以你說創建拇指後,移動該文件喜歡images_sitios /拇指,並使用相同的名稱?所以我應該用$ nome把名字放在拇指上,對吧?所以他們得到了相同的名字。 –

回答

0

您可以使用此resize class來執行圖像大小調整。

// *** 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'); 
相關問題