class.upload.php is a powerful and mature PHP class to manage uploaded files, and manipulate images in many ways. The script is available under a GPL license.
I made a script that sends a zipped file containing multiple photos. After the server receives this file, it unpacks the. I'm not able to make the class read these files uncompressed (. Jpg). Please help me.Reply
Re: How to process multiple images that are inside a folder? new!
You will need to provide more information. Can the class open a JPEG file on your setup? What is the log produced by the class? What is your code?Reply
Re: How to process multiple images that are inside a folder? new!
I am wanting to run a folder where the class contains several files sent via the form.
The uploaded file is a. Zip file containing multiple photos. Jpg inside.
I can do with that. Zip is sent, deleted and unpacked in the destination.
I'm just not able to put the unzipped files in the class.
See my code:
$diretorio = '/home/ceanorg/public_html/fotos/galeria/teste/';
//$files = array();
// Diretório atual
$d = dir('/home/ceanorg/public_html/fotos/galeria/teste/');
// Percorre todos os arquivos
while(false !== ($file = $d->read())){
// Se o arquivo não é este arquivo, e não começa com "." ou "~", então guarde-o para exibição futura.
if(($file{0} != '.') && ($file{0} != '~') ) {
// Guarda o nome do arquivo e dados completos de uma chamada à stat()
$files[$file] = stat($file);
}
}
// Fecha o diretório
$d->close();
//$files = array('/home/ceanorg/public_html/fotos/galeria/teste/006.jpg', '/home/ceanorg/public_html/fotos/galeria/teste/007.jpg', '/home/ceanorg/public_html/fotos/galeria/teste/008.jpg');
$files[$file] = array();
foreach ($files as $k => $l) {
foreach ($l as $i => $v) {
if (!array_key_exists($i, $files))
$files[$i] = array();
$files[$i][$k] = $v;
}
}
foreach ($files as $file) {
// we instanciate the class for each element of $file
$handle = new Upload($file);
// then we check if the file has been uploaded properly
// in its *temporary* location in the server (often, it is /tmp)
if ($handle->uploaded) {
// now, we start the upload 'process'. That is, to copy the uploaded file
// from its temporary location to the wanted location
// It could be something like $handle->Process('/home/www/my_uploads/');
$handle->image_resize = true;
$handle->image_ratio_y = true;
$handle->image_x = 100;
$handle->Process($diretorio);
// we check if everything went OK
if ($handle->processed) {
// everything was fine !
echo ' file uploaded with success';
echo ' ' . round(filesize($handle->file_dst_pathname)/256)/4 . 'KB';
echo ' link to the file just uploaded: ' . $handle->file_dst_name . '';
} else {
// one error occured
echo ' file not uploaded to the wanted location';
echo ' Error: ' . $handle->error . '';
}
} else {
// if we're here, the upload file failed for some reasons
// i.e. the server didn't receive the file
echo ' file not uploaded on the server';
echo ' Error: ' . $handle->error . '';
}
}
First I am listing the files that are inside the folder with the following code:
$diretorio = '/home/ceanorg/public_html/fotos/galeria/teste/';
// abre o diretório
$ponteiro = opendir($diretorio);
// monta os vetores com os itens encontrados na pasta
while ($nome_itens = readdir($ponteiro)) {
$itens[] = $nome_itens;
}
// ordena o vetor de itens
sort($itens);
// percorre o vetor para fazer a separacao entre arquivos e pastas
foreach ($itens as $k) {
// retira "./" e "../" para que retorne apenas pastas e arquivos
if ($k!="." && $k!=".."){
// checa se o tipo de arquivo encontrado é uma pasta
if (is_dir($k)) {
// caso VERDADEIRO adiciona o item à variável de pastas
$pastas[]=$k;
} else {
// caso FALSO adiciona o item à variável de arquivos
$files[]=$k;
}
}
}
So far, so OK
Then I want to put the files listed in an array. Exactly where the error happens.
1) If I use this (manual), the class works perfectly:
2) If I use this other way, the class is not executed
$files = array();
3) The remainder of the code is this:
foreach ($files as $k => $l) {
foreach ($l as $i => $v) {
if (!array_key_exists($i, $files))
$files[$i] = array();
$files[$i][$k] = $v;
}
}
foreach ($files as $file) {
// we instanciate the class for each element of $file
$handle = new Upload($file, 'pt_BR');
// then we check if the file has been uploaded properly
// in its *temporary* location in the server (often, it is /tmp)
if ($handle->uploaded) {
// now, we start the upload 'process'. That is, to copy the uploaded file
// from its temporary location to the wanted location
// It could be something like $handle->Process('/home/www/my_uploads/');
$handle->image_resize = true;
$handle->image_ratio_y = true;
$handle->image_x = 100;
$handle->Process('/home/ceanorg/public_html/fotos/galeria/teste/');
// we check if everything went OK
if ($handle->processed) {
// everything was fine !
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 {
// one error occured
echo ' file not uploaded to the wanted location';
echo ' Error: ' . $handle->error . '';
}
} else {
// if we're here, the upload file failed for some reasons
// i.e. the server didn't receive the file
echo ' file not uploaded on the server';
echo ' Error: ' . $handle->error . '';
}
}
But, I used the example 1 and returned the following error:
file not uploaded to the wanted location Error: copy_failed
This is my code in full:
$handle = new Upload('/home/ceanorg/public_html/fotos/galeria/teste/', 'pt_BR');
if ($handle->uploaded) {
$handle->image_resize = true;
$handle->image_ratio_y = true;
$handle->image_x = 100;
$handle->Process('/home/ceanorg/public_html/fotos/galeria/teste/');
// we check if everything went OK
if ($handle->processed) {
// everything was fine !
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 {
// one error occured
echo ' file not uploaded to the wanted location';
echo ' Error: ' . $handle->error . '';
}
} else {
// if we're here, the upload file failed for some reasons
// i.e. the server didn't receive the file
echo ' file not uploaded on the server';
echo ' Error: ' . $handle->error . '';
}
I'm not able to make the class read these files uncompressed (. Jpg).
Please help me.
I am wanting to run a folder where the class contains several files sent via the form.
The uploaded file is a. Zip file containing multiple photos. Jpg inside.
I can do with that. Zip is sent, deleted and unpacked in the destination.
I'm just not able to put the unzipped files in the class.
See my code:
file not uploaded on the server
Error: file_error
file not uploaded on the server
Error: file_error
file not uploaded on the server
Error:file_error
file not uploaded on the server
Error: file_error
First I am listing the files that are inside the folder with the following code:
So far, so OK
Then I want to put the files listed in an array. Exactly where the error happens.
1) If I use this (manual), the class works perfectly:
2) If I use this other way, the class is not executed
3) The remainder of the code is this:
For simplicity, where I enter the address that contains all the pictures I want to run the class?
Example 1)
Example 2)
Other location?
Please, help me
Thanks
In your example 2, if you deal with local files, do not use the foreach loop! The foreach loop is only for uploaded files.
But, I used the example 1 and returned the following error:
file not uploaded to the wanted location
Error: copy_failed
This is my code in full:
You probably have a permission issue.
:(
The error log can be seen in http://www.cean.org.br/error.txt
The error produced by the class can be seen in http://cean.org.br/adm/image/upload.php
You first get all your file names in an array, and then loop through it, instantiating the class each time with each file name.
In order to help more people that perhaps might have the same problem, post here my code to send pictures zipped:
Thank you for contributing your code.
How to get the width of the image being sent and whether it is greater than XX pixels, reduce.
This example s not function: