Jump to content
Fórum Script Brasil
  • 0

Redimensionamento de imagens


Dennis Aguilar

Question

Pessoal, tenho uma página para inserir um registro e enviar imagens, o redimensionamento das imagens e a criação da pasta acontece, mas cada imagem que eu seleciono no meu input type="file" ele cria uma pasta e faz um registro em branco no meu banco de dados, exemplo: se eu selecionar 5 img ele está criando 5 registros em branco e 5 pastas no meu servidor cada uma com uma imagem, a minha intenção é 1 registo com os dados digitados, e uma pasta para todas as imagens selecionadas.

php na página de registro:

if ((isset($_POST["MM_insert"])) && ($_POST["MM_insert"] == "form1")) {
  $insertSQL = sprintf("INSERT INTO marcador (fkidUsuario, Titulo, Descricao, Data) VALUES ( %s, %s, %s, %s)",
                       GetSQLValueString($_POST['fkidUsuario'], "int"),
                       GetSQLValueString($_POST['Titulo'], "text"),
                       GetSQLValueString($_POST['Descricao'], "text"),
                       GetSQLValueString($_POST['Data'], "date"));  
  mysql_select_db($database_conexviu, $conex);
  $Result1 = mysql_query($insertSQL, $conex) or die(mysql_error());
  
  $idRegistro= mysql_insert_id();
  if(!empty($_FILES)){ 
  		mkdir("uploads/".$idRegistro."/", 0777, true);
		include 'classupload.php'; 
		$upload = new UploadImagem();
		$upload->width = 350;
		$upload->height = 250;
		
		echo $upload->salvar("uploads/".$idRegistro."/", $_FILES['img']);		
} }

form na pagina de registro:

<form action="<?php echo $editFormAction; ?>" method="post" id="upload" name="form1">
  <table align="center">   
    <tr valign="baseline">
      <td nowrap>Título</td>
      <td><input type="text" name="Titulo" id="Titulo" value="" size="32" maxlength="50"></td>
    </tr>
    <tr valign="baseline">
      <td valign="top">Descreva</td>
      <td><textarea name="Descricao" id="Descricao" cols="50" rows="5"></textarea></td>
    </tr>
    <tr valign="baseline">
      <td>Data</td> <td><input type="date" id="arrival_dt" name="Data" required></td>
      </tr>
    </tr>
  </table>

  <div id="drop">
				<a>Adicione fotos</a>
				<input type="file" name="img" id="img" multiple />
   </div>
      
  <input type="submit" value="Inserir">
  <input type="hidden" name="fkidUsuario" value="<?php echo $_SESSION['idUsuario']; ?>">
  <input type="hidden" name="MM_insert" value="form1">
</form>

página classupload.php onde está fazendo redimensionamento da imagem:

<?php
class UploadImagem{
	public $width;
	public $height;
	protected $tipos = array("jpeg", "png", "gif");
	
	protected function redimensionar($caminho, $nomearquivo){
		$width = $this->width;
        $height = $this->height;
		
		
list($width_orig, $height_orig, $tipo, $atributo) = getimagesize($caminho.$nomearquivo);

if($width_orig > $height_orig){
   $height = ($width/$width_orig)*$height_orig;} 
else if($width_orig < $height_orig) {
	   $width = ($height/$height_orig)*$width_orig; }
$novaimagem = imagecreatetruecolor($width, $height);

switch($tipo){

case 1:
	$origem = imagecreatefromgif($caminho.$nomearquivo);
	imagecopyresampled($novaimagem, $origem, 0, 0, 0, 0, $width, $height, $width_orig, $height_orig);
	imagegif($novaimagem, $caminho.$nomearquivo);
break;

case 2:
    $origem = imagecreatefromjpeg($caminho.$nomearquivo);
    imagecopyresampled($novaimagem, $origem, 0, 0, 0, 0, $width, $height, $width_orig, $height_orig);
    imagejpeg($novaimagem, $caminho.$nomearquivo);
break;

case 3:
    $origem = imagecreatefrompng($caminho.$nomearquivo);
    imagecopyresampled($novaimagem, $origem, 0, 0, 0, 0, $width, $height, $width_orig, $height_orig);
    imagepng($novaimagem, $caminho.$nomearquivo);
break;
}

imagedestroy($novaimagem);
imagedestroy($origem);
}
public function salvar($caminho, $file){
	$file['name'] = (($file['name']));
	$uploadfile = $caminho.$file['name'];
	
move_uploaded_file($file['tmp_name'], $uploadfile);
}
	
}
?>
Link to comment
Share on other sites

0 answers to this question

Recommended Posts

There have been no answers to this question yet

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



  • Forum Statistics

    • Total Topics
      152.2k
    • Total Posts
      652k
×
×
  • Create New...