How to process multiple images that are inside a folder?

See all posts See thread Reply

Re: How to process multiple images that are inside a folder? new!
by colin, 13 years, 1 month ago
Please check the logs produced by the class!!!! Everything the class does is detailed in the log.

You probably have a permission issue.Reply
Re: How to process multiple images that are inside a folder? new!
by Marcio Alves, 13 years, 1 month ago
Permission to the folder /home/ceanorg/public_html/fotos/galeria/teste is CHMOD 777
:(Reply
Re: How to process multiple images that are inside a folder? new!
by colin, 13 years, 1 month ago
As I said before, check the logs produced by the class!!!!Reply
Re: How to process multiple images that are inside a folder? new!
by Marcio Alves, 13 years, 1 month ago
Dear Colin

The error log can be seen in http://www.cean.org.br/error.txtReply
Re: How to process multiple images that are inside a folder? new!
by colin, 13 years, 1 month ago
I mean the log produced by the class. See the first item of the FAQ.Reply
Re: How to process multiple images that are inside a folder? new!
by Marcio Alves, 13 years, 1 month ago
Sorry

The error produced by the class can be seen in http://cean.org.br/adm/image/upload.phpReply
Re: How to process multiple images that are inside a folder? new!
by colin, 13 years, 1 month ago
You need to instantiate the class with a local image file, not a directory.

You first get all your file names in an array, and then loop through it, instantiating the class each time with each file name.
$files = array('pic1.jpg', 'pic2.jpg', 'pic3.jpg');
foreach ($files as $file) {
  $handle = new Upload($file);
  if ($handle->uploaded) {
    $handle->image_resize            = true;
    $handle->image_ratio_y           = true;
    $handle->image_x                 = 100;
    $handle->Process('destination_directory/');
  }
}
Reply
Re: How to process multiple images that are inside a folder? new!
by Marcio Alves, 13 years, 1 month ago
Thank you for your help and patience. Based on them could solve the problem.

In order to help more people that perhaps might have the same problem, post here my code to send pictures zipped:

$uploadcaminho='test';
$codigo='13';

// START UPLOAD .ZIP FILE
print "VERIFICANDO ARQUIVOS ENVIADOS";
if ($uploadcaminho) {
  print "FOLDER DESTINATION (".$uploadcaminho.") [FOLDER - OK]";
} else {
  die('FOLDER DESTINATION - ERROR');
}
if (is_numeric($codigo)) {
  print "CODE (".$codigo.")[CODE - OK]";
} else {
  die('CODE ERROR');
}
if (!file_exists("/home/folder/".$uploadcaminho)) {
  mkdir("/home/folder/".$uploadcaminho, 0755);
  print "/home/folder/".$uploadcaminho." [FOLDER CREATED - OK]";
} else {
  print "/home/folder/".$uploadcaminho." [FOLDER EXISTing]";
}

print "START UPLOAD FILES ...";

if ($_FILES['my_field']['error'] == 0) {
  move_uploaded_file($_FILES['my_field']['tmp_name'], "/home/folder/".$uploadcaminho."/".$my_field_name);
  rename("/home/folder/".$uploadcaminho."/".$my_field_name, "/home/folder/".$uploadcaminho."/".$codigo.".zip");
  $my_field_name = $codigo.".zip";
} else {
  die("ERROr ".$_FILES['my_field']['error']);
}

// START UNZIP
$zip = new ZipArchive();
$zip->open("/home/folder/$uploadcaminho/$my_field_name");
$zip->extractTo("/home/folder/$uploadcaminho");
$zip->close(); 
echo "FILE $my_field_name UNZIP SUCCESS";

//DEL UNZIP FILE
unlink ("/home/folder/teste/$my_field_name");
echo "FILE $my_field_name DELETED WITH SUCESS!";

// ---------- MULTIPLE UPLOADS ----------
  
$diretorio = '/home/folder/teste/';
$ponteiro  = opendir($diretorio);

while ($nome_itens = readdir($ponteiro)) {
    $itens[] = $nome_itens;
}
sort($itens);

foreach ($itens as $k) {
  if ($k!="." && $k!=".."){
    if (is_dir($k)) {
      $pastas[]=$k;
    } else {
      $arquivos[]=$diretorio.'/'.$k;
    }
  }
}

foreach ($arquivos as $file) {
  $handle = new Upload($file);
  
  if ($handle->uploaded) {
    $handle->image_resize              = true;
    $handle->image_ratio_y           = true;
    $handle->image_x                 = 100;
    $handle->Process($diretorio);
    
    if ($handle->processed) {
      echo '  file uploaded with success';
      echo '  ' . round(filesize($handle->file_dst_pathname)/256)/4 . 'KB';
      echo '  link to the file just uploaded: "../../fotos/galeria/teste/' . $handle->file_dst_name . ' : ' . $handle->file_dst_name . '';
    } else {
      echo '  file not uploaded to the wanted location';
      echo '  Error: ' . $handle->error . '';
      echo '  Log: ' . $handle->log . '';
    }

  } else {
      echo '  file not uploaded on the server';
      echo '  Error: ' . $handle->error . '';
      echo '  Log: ' . $handle->log . '';
  }
}
Reply
Re: How to process multiple images that are inside a folder? new!
by colin, 13 years, 1 month ago
I glad you managed in the end.

Thank you for contributing your code.Reply
Re: How to process multiple images that are inside a folder? new!
by Marcio Alves, 13 years, 1 month ago
Colin,more issue:

How to get the width of the image being sent and whether it is greater than XX pixels, reduce.

This example s not function:
if($handle->image_x > 800) {
  $handle->image_resize = true;
  $handle->image_ratio = true;
  $handle->image_x = 800; 	//width
}
Reply