vi scrivo perchè non riesco a venir fuori a questo problema.. questo script dovrebbe permettere di eseguire l'upload di una immagine controllandone prima l'estensione e poi spostandolo nella folder di destinazione e farne una copia ridimensionata e convertita in png in un'altra cartella.. finchè si tratta di copiare semplicemente l'immagine da una cartella all'altra lo script funziona ma quando inserisco la riga di codice che dovrebbe permettere di convertire e ridimensionare l'immagine non viene eseguito l'upload... vi sarei grato se sapreste risolvere il problema
Codice PHP:
<?php
// If you want to ignore the uploaded files,
// set $demo_mode to true;
$upload_dir = 'uploads/';
$upload_dir_rid = 'uploads_rid/';
$allowed_ext = array('jpg','png','gif');
if(strtolower($_SERVER['REQUEST_METHOD']) != 'post'){
exit_status('Error! Wrong HTTP method!');
}
if(array_key_exists('pic',$_FILES) && $_FILES['pic']['error'] == 0 ){
$pic = $_FILES['pic'];
$pic_copia = $pic;
$pic_nome = get_filename($pic['name']);
if(!in_array(get_extension($pic['name']),$allowed_ext)){
exit_status('Only '.implode(',',$allowed_ext).' files are allowed!');
}
/*$destinazione_png = $upload_dir_rid . get_filename($pic_copia['name']) . ".png";*/
// Move the uploaded file from the temporary
// directory to the uploads folder:
if(!copy($pic['tmp_name'], $upload_dir_rid.$pic['name'])){
exit_status('Error');
}
// questa è la stringa che crea problemi..
if(resize_img(convert($pic['name']))) {exit_status("Copia eseguita con successo");}
if(move_uploaded_file($pic['tmp_name'], $upload_dir.$pic['name'])){
exit_status('File was uploaded successfuly!');
}
}
exit_status('Something went wrong with your upload!');
$target_uno = $upload_dir . basename($pic['name']);
$target_due = $upload_dir_rid . basename($pic['name']);
$source = "$target_uno";
$destination = "$target_due";
if (!copy($source, $destination)) {
echo "Copia di $file non riuscita...";
}
// Helper functions
function exit_status($str){
echo json_encode(array('status'=>$str));
exit;
}
function get_extension($file_name){
$ext = explode('.', $file_name);
$ext = array_pop($ext);
return strtolower($ext);
}
function get_filename($file_name){
$name = substr($file_name, 0, -3);
return $name;
}
function convert($file_name){
$pic_nome = get_filename($file_name);
if(get_extension($file_name) == 'jpeg'){ imagepng(imagecreatefromjpeg($file_name), "$upload_dir_rid"."$pic_nome".".png");}
if(get_extension($file_name) == 'wbmp'){ imagepng(imagecreatefromwbmp($file_name), "$upload_dir_rid"."$pic_nome".".png");}
if(get_extension($file_name) == 'gif'){ imagepng(imagecreatefromgif($file_name), "$upload_dir_rid"."$pic_nome".".png");}
if(get_extension($file_name) == 'png'){ imagepng(imagecreatefrompng($file_name), "$upload_dir_rid"."$pic_nome".".png");}
if(get_extension($file_name) == 'jpg'){ imagepng(imagecreatefromjpeg($file_name), "$upload_dir_rid"."$pic_nome".".png");}
}
function resize_img($file_name){
include('classe_resize.php');
$resize = new resize;
$resize->urlimage = "$upload_dir"."$file_name";
$resize->fisso = 0;
$resize->maxX = 165;
$resize->maxY = 140;
$resize->latofisso = "XY";
$resize->folder = "$upload_dir_rid";
$resize->go();
}
?>
grazie in anticipo per le risposte