Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

darlansandro

[Resolvido] Como usar o WideImage com o Dreawmeaver

Recommended Posts

Oi galera, estou precisando de uma ajudinha aqui, já coloquei esta duvida no forum do dreawmeaver mais até agora nada. Gostaria de usar o Wideimage para redimesionamento, inclusão de marca d' água, etc na imagem. Uso para fazer o upload do arquivo e registro no banco de dados um script que encontrei aqui mesmo no imasters: Clique aqui

 

Bem vou postar o codigo de como fiz para redimensionar e não deu certo. Ao carregar a imagem a pagina fica em branco e nada aparece.

<?php require_once('../Connections/banco.php'); ?>
[b]<?php include('/wideimage/lib/WideImage.php');?>[/b]
$editFormAction = $_SERVER['PHP_SELF'];
if (isset($_SERVER['QUERY_STRING'])) {
$editFormAction .= "?" . htmlentities($_SERVER['QUERY_STRING']);
}

if ((isset($_POST["MM_insert"])) && ($_POST["MM_insert"] == "form1")) {

[b]$image = WideImage::load (arquivos/fotos/$_FILES[$id_arquivo]["tmp_name"]);
$resized = $image->resize(400, 300);[/b]

$arquivo = $_FILES["album_foto"];
$arquivo_album_foto = $arquivo["name"];


$insertSQL = sprintf("INSERT INTO album (album_id, album_data, album_titulo, album_foto, album_fotografo, album_usu) VALUES (%s, %s, %s, '$arquivo_album_foto', %s, %s)",
GetSQLValueString($_POST['album_id'], "int"),
GetSQLValueString($_POST['album_data'], "date"),
GetSQLValueString($_POST['album_titulo'], "text"),
GetSQLValueString($_POST['album_fotografo'], "text"),
GetSQLValueString($_POST['album_usu'], "text"));

$diretorio = "arquivos/fotos/";
$id_arquivo = "album_foto";
$nome_arquivo = $_FILES[$id_arquivo]["name"];
$arquivo_temporario = $_FILES[$id_arquivo]["tmp_name"];
move_uploaded_file($arquivo_temporario, "$diretorio/$nome_arquivo");

 

Galera ninguem pode me dar uma ajudinha aqui, agradeço qualquer ajuda.

Compartilhar este post


Link para o post
Compartilhar em outros sites

ao menos alguns erros seriam interessante, para termos oque arrumar.

 

troque:

$image = WideImage::load (arquivos/fotos/$_FILES[$id_arquivo]["tmp_name"]);
por:

$image = WideImage::load ('arquivos/fotos/'.$_FILES[$id_arquivo]['tmp_name']);

e então habilite as mensagens de erro:

http://forum.imasters.com.br/index.php?/topic/375800-orientacoes-para-uma-boa-participacao/

<?php
ini_set('display_errors', true);
error_reporting(E_ALL);

Compartilhar este post


Link para o post
Compartilhar em outros sites

William muito obrigado pela ajuda, habilitei as mensagens de erro e apresentou o seguinte:

 

Notice: Undefined variable: id_arquivo in D:\websites\joazitoandrade\administrador\albumnovo.php on line 118

 

Notice: Undefined index: in D:\websites\joazitoandrade\administrador\albumnovo.php on line 118

 

Warning: file_get_contents(arquivos/fotos/) [function.file-get-contents]: failed to open stream: No such file or directory in D:\websites\joazitoandrade\administrador\wideimage\lib\WideImage.php on line 148

 

Fatal error: Uncaught exception 'WideImage_UnsupportedFormatException' with message 'Format '' is not supported.' in D:\websites\joazitoandrade\administrador\wideimage\lib\MapperFactory.php:78 Stack trace: #0 D:\websites\joazitoandrade\administrador\wideimage\lib\WideImage.php(152): WideImage_MapperFactory::selectMapper('arquivos/fotos/', NULL) #1 [internal function]: WideImage::loadFromFile('arquivos/fotos/', NULL) #2 D:\websites\joazitoandrade\administrador\wideimage\lib\WideImage.php(135): call_user_func(Array, 'arquivos/fotos/', NULL) #3 D:\websites\joazitoandrade\administrador\albumnovo.php(118): WideImage::load('arquivos/fotos/') #4 {main} thrown in D:\websites\joazitoandrade\administrador\wideimage\lib\MapperFactory.php on line 78

 

O que você acha?

Compartilhar este post


Link para o post
Compartilhar em outros sites

hum.. como está o formulario HTML?

 

você colocou um:

enctype="multipart/form-data"
nele ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

a primeira chave do $_FILES deve corresponder ao atributo name do teu input file.

 

exemplo:

<input type="file" name="foto" />
logo:

$_FILES['foto']
arruma ai no teu código.

 

provavelmente:

$image = WideImage::load('arquivos/fotos/'.$_FILES['album_foto']['tmp_name']);

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bem, os erros não aparecem mais William e o upload dos arquivos estão sendo realizados. Para isso seguir as orientações do tutorial na pagina da classe, Wideimage, contudo não conseguir fazer o principal redimensionar e colocar a marca d'água, ou seja, as imagens vão para o servidor mais não são modificadas. Vou postar o codigo completo agora inclusive com o formulario, ressalto que não informou erro algum:

 

Codigo:

 

<?php require_once('../Connections/banco.php'); ?>
<?php include ('wideimage/lib/WideImage.php');?>
<?php
//initialize the session
if (!isset($_SESSION)) {
  session_start();
}

// ** Logout the current user. **
$logoutAction = $_SERVER['PHP_SELF']."?doLogout=true";
if ((isset($_SERVER['QUERY_STRING'])) && ($_SERVER['QUERY_STRING'] != "")){
  $logoutAction .="&". htmlentities($_SERVER['QUERY_STRING']);
}

if ((isset($_GET['doLogout'])) &&($_GET['doLogout']=="true")){
  //to fully log out a visitor we need to clear the session varialbles
  $_SESSION['MM_Username'] = NULL;
  $_SESSION['MM_UserGroup'] = NULL;
  $_SESSION['PrevUrl'] = NULL;
  unset($_SESSION['MM_Username']);
  unset($_SESSION['MM_UserGroup']);
  unset($_SESSION['PrevUrl']);
	
  $logoutGoTo = "../index.php";
  if ($logoutGoTo) {
    header("Location: $logoutGoTo");
    exit;
  }
}
?>
<?php
if (!isset($_SESSION)) {
  session_start();
}
$MM_authorizedUsers = "1,2,5,7,8,9";
$MM_donotCheckaccess = "false";

// *** Restrict Access To Page: Grant or deny access to this page
function isAuthorized($strUsers, $strGroups, $UserName, $UserGroup) { 
  // For security, start by assuming the visitor is NOT authorized. 
  $isValid = False; 

  // When a visitor has logged into this site, the Session variable MM_Username set equal to their username. 
  // Therefore, we know that a user is NOT logged in if that Session variable is blank. 
  if (!empty($UserName)) { 
    // Besides being logged in, you may restrict access to only certain users based on an ID established when they login. 
    // Parse the strings into arrays. 
    $arrUsers = Explode(",", $strUsers); 
    $arrGroups = Explode(",", $strGroups); 
    if (in_array($UserName, $arrUsers)) { 
      $isValid = true; 
    } 
    // Or, you may restrict access to only certain users based on their username. 
    if (in_array($UserGroup, $arrGroups)) { 
      $isValid = true; 
    } 
    if (($strUsers == "") && false) { 
      $isValid = true; 
    } 
  } 
  return $isValid; 
}

$MM_restrictGoTo = "permissaoacessonegada.php";
if (!((isset($_SESSION['MM_Username'])) && (isAuthorized("",$MM_authorizedUsers, $_SESSION['MM_Username'], $_SESSION['MM_UserGroup'])))) {   
  $MM_qsChar = "?";
  $MM_referrer = $_SERVER['PHP_SELF'];
  if (strpos($MM_restrictGoTo, "?")) $MM_qsChar = "&";
  if (isset($QUERY_STRING) && strlen($QUERY_STRING) > 0) 
  $MM_referrer .= "?" . $QUERY_STRING;
  $MM_restrictGoTo = $MM_restrictGoTo. $MM_qsChar . "accesscheck=" . urlencode($MM_referrer);
  header("Location: ". $MM_restrictGoTo); 
  exit;
}
?>
<?php
if (!function_exists("GetSQLValueString")) {
function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "") 
{
  $theValue = get_magic_quotes_gpc() ? stripslashes($theValue) : $theValue;

  $theValue = function_exists("mysql_real_escape_string") ? mysql_real_escape_string($theValue) : mysql_escape_string($theValue);

  switch ($theType) {
    case "text":
      $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
      break;    
    case "long":
    case "int":
      $theValue = ($theValue != "") ? intval($theValue) : "NULL";
      break;
    case "double":
      $theValue = ($theValue != "") ? "'" . doubleval($theValue) . "'" : "NULL";
      break;
    case "date":
      $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
      break;
    case "defined":
      $theValue = ($theValue != "") ? $theDefinedValue : $theNotDefinedValue;
      break;
  }
  return $theValue;
}
}

$editFormAction = $_SERVER['PHP_SELF'];
if (isset($_SERVER['QUERY_STRING'])) {
  $editFormAction .= "?" . htmlentities($_SERVER['QUERY_STRING']);
}

if ((isset($_POST["MM_insert"])) && ($_POST["MM_insert"] == "form1")) {

 
ini_set('display_errors', true); 
error_reporting(E_ALL);

$img = WideImage::loadFromFile($_FILES['album_foto']['tmp_name']);
$resize= $img->resize(50, 50);




$arquivo = $_FILES["album_foto"];
$arquivo_album_foto = $arquivo["name"];


  $insertSQL = sprintf("INSERT INTO album (album_id, album_data, album_titulo, album_foto, album_fotografo, album_usu) VALUES (%s, %s, %s, '$arquivo_album_foto', %s, %s)",
                       GetSQLValueString($_POST['album_id'], "int"),
                       GetSQLValueString($_POST['album_data'], "date"),
                       GetSQLValueString($_POST['album_titulo'], "text"),
					   GetSQLValueString($_POST['album_fotografo'], "text"),
                       GetSQLValueString($_POST['album_usu'], "text"));
					   
$diretorio = "arquivos/fotos/";
$id_arquivo = "album_foto";
$nome_arquivo = $_FILES[$id_arquivo]["name"];
$arquivo_temporario = $_FILES[$id_arquivo]["tmp_name"];
move_uploaded_file($arquivo_temporario, "$diretorio/$nome_arquivo");

  mysql_select_db($database_banco, $banco);
  $Result1 = mysql_query($insertSQL, $banco) or die(mysql_error());
  
 $album_id = mysql_insert_id(); //aqui você pega a id que a consulta gerou e joga numa variável

  $insertSQL = sprintf("INSERT INTO log (log_id, log_usu, log_tab, log_tip, log_canal_id) VALUES (%s, %s, %s, %s, '$album_id')",
                       GetSQLValueString($_POST['log_id'], "int"),
                       GetSQLValueString($_POST['log_usu'], "text"),
                       GetSQLValueString($_POST['log_tab'], "text"),
                       GetSQLValueString($_POST['log_tip'], "text"),
                       GetSQLValueString($_POST['log_canal_id'], "text"));

  mysql_select_db($database_banco, $banco);
  $Result1 = mysql_query($insertSQL, $banco) or die(mysql_error());

  $insertGoTo = "album.php";
  if (isset($_SERVER['QUERY_STRING'])) {
    $insertGoTo .= (strpos($insertGoTo, '?')) ? "&" : "?";
    $insertGoTo .= $_SERVER['QUERY_STRING'];
  }
  header(sprintf("Location: %s", $insertGoTo));
}

Formulario:

 

<form action="<?php echo $editFormAction; ?>" method="post" enctype="multipart/form-data" name="form1" id="form1">
              <table width="920" border="0" align="center" cellpadding="0" cellspacing="0">
                <tr>
                  <th align="center" valign="top" scope="col"> </th>
                </tr>
              </table>
              <table width="920" border="0" align="center" cellpadding="0" cellspacing="0" class="linhatabela">
                <tr>
                  <th height="80" align="center" valign="middle" scope="col"><table width="900" border="0" align="center" cellpadding="0" cellspacing="0">
                      <tr>
                        <th width="106" rowspan="2" align="center" valign="middle" scope="col"><a href="album.php"><img src="images/lphoto1.png" alt="Album" width="48" height="48" border="0" /></a></th>
                        <th width="539" rowspan="2" align="left" valign="middle" class="fonte18Verde" scope="col">Álbum:[Novo]</th>
                        <th width="85" align="center" valign="middle" class="fonte18Verde" scope="col"><a href="index.php"><img src="images/paginainicial.png" alt="Página Inicial" width="48" height="48" border="0" /></a></th>
                        <th width="85" align="center" valign="middle" class="fonte18Verde" scope="col"><label>
                          <input type="image" name="imageField" id="imageField" src="images/apply.png" />
                        </label></th>
                        <th width="85" align="center" valign="middle" class="fonte18Verde" scope="col"><a href="album.php"><img src="images/button_cancel.png" alt="Voltar" width="32" height="32" border="0" /></a></th>
                      </tr>
                      <tr>
                        <th width="85" align="center" valign="middle" class="fonte10azulnegrito" scope="col">Inicial</th>
                        <th width="85" align="center" valign="middle" class="fonte10azulnegrito" scope="col">Aplicar</th>
                        <th align="center" valign="middle" class="fonte10azulnegrito" scope="col">Voltar</th>
                      </tr>
                  </table></th>
                </tr>
              </table>
              <table width="920" border="0" align="center" cellpadding="0" cellspacing="0">
                <tr>
                  <th align="center" valign="top" scope="col"> </th>
                </tr>
              </table>
              <table width="920" border="0" align="center" cellpadding="0" cellspacing="0" class="linhatabela">
                <tr>
                  <th align="center" valign="top" scope="col"><table width="900" border="0" align="center" cellpadding="0" cellspacing="0">
                      <tr>
                        <th align="center" valign="top" scope="col"> </th>
                      </tr>
                    </table>
                      <table width="900" align="center">
                        <tr valign="baseline">
                          <td width="80" align="left" valign="top" nowrap="nowrap" bgcolor="#F4F4F4" class="fonte10cinzanegrito">Álbum:</td>
                          <td colspan="3" align="left" valign="top"><input name="album_titulo" type="text" class="linhatabela" value="" size="70" /></td>
                        </tr>
                        <tr valign="baseline">
                          <td align="left" valign="top" nowrap="nowrap" bgcolor="#F4F4F4" class="fonte10cinzanegrito">Fotográfo:</td>
                          <td width="318" align="left" valign="top"><input name="album_fotografo" type="text" class="linhatabela" value="" size="50" /></td>
                          <td width="75" align="left" valign="top" bgcolor="#F4F4F4" class="fonte10cinzanegrito">Imagem:</td>
                          <td width="407" align="left" valign="top"><label>
                            <input name="album_foto" type="file" class="linhatabela" id="album_foto" />
                          </label></td>
                        </tr>
                      </table>
                <input type="hidden" name="album_id" value="" />
              <input type="hidden" name="album_data" value="<?php echo date('Y/m/d H:i:s');?>" />
                      <input type="hidden" name="album_usu" value="<?php echo $row_rsUsuarios['usu_id']; ?>" />
                      <input type="hidden" name="MM_insert" value="form1" />
                      <input type="hidden" name="log_id" value="" />
                      <input type="hidden" name="log_usu" value="<?php echo $row_rsUsuarios['usu_id']; ?>" />
                      <input type="hidden" name="log_tab" value="Álbum de Fotos" />
                      <input type="hidden" name="log_tip" value="Incluir" />
                      <input type="hidden" name="log_canal_id" value="" />
                      <input type="hidden" name="MM_insert2" value="form1" />
<p> </p>
                      <p></p>
                    <p> </p>
                    <p> </p>
                    <p> </p>
                    <p> </p>
                    <p> </p>
                    <p> </p>
                    <p> </p>
                    <p> </p>
                    <p> </p>
                    <p> </p>
                    <p> </p>
                    <p> </p>
                    <p> </p>
                    <p> </p>
                    <p> </p></th>
                </tr>
              </table>
              </form>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Então cara, agora você precisa estudar a documentação dessa classe, mas veja:

$diretorio = "arquivos/fotos/";
$id_arquivo = "album_foto";
$nome_arquivo = $_FILES[$id_arquivo]["name"];
$arquivo_temporario = $_FILES[$id_arquivo]["tmp_name"];
move_uploaded_file($arquivo_temporario, "$diretorio/$nome_arquivo");
ai em cima, você faz o upload independentemente da classe !

 

esse é o problema.

 

esqueça esse trecho que postei, e faça tudo pela classe, provavelmente ela está gerando a miniatura numa pasta temporária, veja se a classe possui algum método para copiar a imagem $resize para a pasta de destino final.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bem, finalmente conseguir unir o script de upload a o wideimage. Enfim, como outras pessoas podem estarem precisando da mesma ajuda, resolvir postar a solução.

$diretorio = "arquivos/fotos/";

$id_arquivo = "album_foto";

$id_arquivo = WideImage::load("album_foto");

$logo = WideImage::load('arquivos/programas/carimbo.png');

$img = $id_arquivo->resize(520, 355, 'fill')->merge($logo, "center", "bottom", 100);

$img->saveToFile("arquivos/fotos/".$_FILES["album_foto"]["name"]);

$nome_arquivo = $_FILES[$id_arquivo]["name"];

$arquivo_temporario = $_FILES[$id_arquivo]["tmp_name"];

move_uploaded_file($arquivo_temporario, "$diretorio/$nome_arquivo");

Valeu galera. Obrigado a todos pela ajuda.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.