This topic is locked

[TUTORIAL] Rename uploaded files based on ID

11/3/2011 4:26:07 AM
PHPRunner Tips and Tricks
T
tr4ding author

Hy everyone.....this is a tutorial based on my own post....
SCENARIO
We have 3 different upload fields and we have to check for:
image field: max 100 kb and only .jpg extension

audio field: max 4 mb and only .mp3 extension

video field: max 4 mb and only .3gp extension
We want to check these conditions befor record added/updated and we want also to rename upload filename with the same id after record added/updated.
Uploaded files were stored into a remote directory called "files/".
CODE for: ADD PAGE / BEFORE RECORD ADDED



$image_estensioni_ammesse = array('.jpg');

$audio_estensioni_ammesse = array('.mp3');

$video_estensioni_ammesse = array('.3gp');

$image_nome_file=$_FILES["value_image_1"]["name"];

$audio_nome_file=$_FILES["value_audio_1"]["name"];

$video_nome_file=$_FILES["value_video_1"]["name"];
$estensione_image = strtolower(substr($image_nome_file, strrpos($image_nome_file, "."), strlen($image_nome_file)-strrpos($image_nome_file, ".")));

$estensione_audio = strtolower(substr($audio_nome_file, strrpos($audio_nome_file, "."), strlen($audio_nome_file)-strrpos($audio_nome_file, ".")));

$estensione_video = strtolower(substr($video_nome_file, strrpos($video_nome_file, "."), strlen($video_nome_file)-strrpos($video_nome_file, ".")));
$size_image = $_FILES["value_image_1"]["size"];

$size_audio = $_FILES["value_audio_1"]["size"];

$size_video = $_FILES["value_video_1"]["size"];
if ( isset($size_image) && $_FILES["value_image_1"]["size"]>102400) {

$message = "<div class=message><<< Il file immagine non può superare i 100 KB >>></div>";

return false;

}
if ( isset($size_audio) && $_FILES["value_audio_1"]["size"]>4194304) {

$message = "<div class=message><<< Il file audio non può superare i 4 MB >>></div>";

return false;

}
if ( isset($size_video) && $_FILES["value_video_1"]["size"]>4194304) {

$message = "<div class=message><<< Il file video non può superare i 4 MB >>></div>";

return false;

}
if(!in_array($estensione_image,$image_estensioni_ammesse) && $_FILES["value_image_1"]["size"]!=0){

$message.= "$image_nome_file Upload file non ammesso. Estensioni ammesse: ".implode(", ",$image_estensioni_ammesse)."<br/>";



}
elseif(!in_array($estensione_audio,$audio_estensioni_ammesse) && $_FILES["value_audio_1"]["size"]!=0){

$message.= "$audio_nome_file Upload file non ammesso. Estensioni ammesse: ".implode(", ",$audio_estensioni_ammesse)."<br/>";



}

elseif(!in_array($estensione_video,$video_estensioni_ammesse) && $_FILES["value_video_1"]["size"]!=0){

$message.= "$video_nome_file Upload file non ammesso. Estensioni ammesse: ".implode(", ",$video_estensioni_ammesse)."<br/>";



}

else{

return true;}


CODE for: ADD PAGE / AFTER RECORD ADDED



global $conn;
$immagine = $values['image'];

$audio = $values['audio'];

$video = $values['video'];

$estensione_audio = strtolower(substr($values['audio'], strrpos($values['audio'], "."), strlen($values['audio'])-strrpos($values['audio'], ".")));

$estensione_video = strtolower(substr($values['video'], strrpos($values['video'], "."), strlen($values['video'])-strrpos($values['video'], ".")));
if (isset($immagine)){
db_exec("UPDATE table_name SET image='".$keys['id'].".jpg' WHERE id=".$keys['id'],$conn);
$old_path_to_file = 'files/'.$values['image'];

$new_path_to_file = 'files/'.$keys['id'].'.jpg';
rename($old_path_to_file,$new_path_to_file);

}
if (isset($audio)){
db_exec("UPDATE table_name SET audio='".$keys['id']."$estensione_audio' WHERE id=".$keys['id'],$conn);
$old_path_audio = 'files/'.$values['audio'];

$new_path_audio = 'files/'.$keys['id'].$estensione_audio;
rename($old_path_audio,$new_path_audio);

}
if (isset($video)){
db_exec("UPDATE table_name SET video='".$keys['id']."$estensione_video' WHERE id=".$keys['id'],$conn);
$old_path_video = 'files/'.$values['video'];

$new_path_video = 'files/'.$keys['id'].$estensione_video;
rename($old_path_video,$new_path_video);

}


CODE for: EDIT PAGE / BEFORE RECORD UPDATED



$image_estensioni_ammesse = array('.jpg');

$audio_estensioni_ammesse = array('.mp3');

$video_estensioni_ammesse = array('.3gp');

$image_nome_file=$_FILES["value_image_1"]["name"];

$audio_nome_file=$_FILES["value_audio_1"]["name"];

$video_nome_file=$_FILES["value_video_1"]["name"];
$estensione_image = strtolower(substr($image_nome_file, strrpos($image_nome_file, "."), strlen($image_nome_file)-strrpos($image_nome_file, ".")));

$estensione_audio = strtolower(substr($audio_nome_file, strrpos($audio_nome_file, "."), strlen($audio_nome_file)-strrpos($audio_nome_file, ".")));

$estensione_video = strtolower(substr($video_nome_file, strrpos($video_nome_file, "."), strlen($video_nome_file)-strrpos($video_nome_file, ".")));
$size_image = $_FILES["value_image_1"]["size"];

$size_audio = $_FILES["value_audio_1"]["size"];

$size_video = $_FILES["value_video_1"]["size"];
if ( isset($size_image) && $_FILES["value_image_1"]["size"]>102400) {

$message = "<div class=message><<< Il file immagine non può superare i 100 KB >>></div>";

return false;

}
if ( isset($size_audio) && $_FILES["value_audio_1"]["size"]>4194304) {

$message = "<div class=message><<< Il file audio non può superare i 4 MB >>></div>";

return false;

}
if ( isset($size_video) && $_FILES["value_video_1"]["size"]>4194304) {

$message = "<div class=message><<< Il file video non può superare i 4 MB >>></div>";

return false;

}
if(!in_array($estensione_image,$image_estensioni_ammesse) && $_FILES["value_image_1"]["size"]!=0){

$message.= "$image_nome_file Upload file non ammesso. Estensioni ammesse: ".implode(", ",$image_estensioni_ammesse)."<br/>";



}
elseif(!in_array($estensione_audio,$audio_estensioni_ammesse) && $_FILES["value_audio_1"]["size"]!=0){

$message.= "$audio_nome_file Upload file non ammesso. Estensioni ammesse: ".implode(", ",$audio_estensioni_ammesse)."<br/>";



}

elseif(!in_array($estensione_video,$video_estensioni_ammesse) && $_FILES["value_video_1"]["size"]!=0){

$message.= "$video_nome_file Upload file non ammesso. Estensioni ammesse: ".implode(", ",$video_estensioni_ammesse)."<br/>";



}

else{

return true;}


CODE for: EDIT PAGE / AFTER RECORD UPDATED



$current_id = $keys['id'];
$immagine = $values['image'];

$audio = $values['audio'];

$video = $values['video'];

$estensione_audio = strtolower(substr($values['audio'], strrpos($values['audio'], "."), strlen($values['audio'])-strrpos($values['audio'], ".")));

$estensione_video = strtolower(substr($values['video'], strrpos($values['video'], "."), strlen($values['video'])-strrpos($values['video'], ".")));
if (isset($immagine)){

$old_path_image = 'files/'.$values['image'];

$new_path_image = 'files/'.$keys['id'].'.jpg';

$file_name_image = $keys['id'].'.jpg';
if (file_exists($new_path_image) && ($old_path_image == $new_path_image )) {

mysql_query("

UPDATE table_name

SET image = '$file_name_image' where id = '$current_id'");

}

elseif (file_exists($new_path_image)){

unlink($new_path_image);

rename($old_path_image,$new_path_image);

mysql_query("

UPDATE table_name

SET image = '$file_name_image' where id = '$current_id'");

}

else {(rename($old_path_image,$new_path_image));

mysql_query("

UPDATE table_name

SET image = '$file_name_image' where id = '$current_id'");

}

}
if (isset($audio)){

$old_path_audio = 'files/'.$values['audio'];

$new_path_audio = 'files/'.$keys['id'].$estensione_audio;

$file_name_audio = $keys['id'].$estensione_audio;
if (file_exists($new_path_audio) && ($old_path_audio == $new_path_audio )) {

mysql_query("

UPDATE table_name

SET audio = '$file_name_audio' where id = '$current_id'");

}

elseif (file_exists($new_path_audio)){

unlink($new_path_audio);

rename($old_path_audio,$new_path_audio);

mysql_query("

UPDATE table_name

SET audio = '$file_name_audio' where id = '$current_id'");

}

else {(rename($old_path_audio,$new_path_audio));

mysql_query("

UPDATE table_name

SET audio = '$file_name_audio' where id = '$current_id'");

}

}
if (isset($video)){

$old_path_video = 'files/'.$values['video'];

$new_path_video = 'files/'.$keys['id'].$estensione_video;

$file_name_video = $keys['id'].$estensione_video;
if (file_exists($new_path_video) && ($old_path_video == $new_path_video )) {

mysql_query("

UPDATE table_name

SET video = '$file_name_video' where id = '$current_id'");

}

elseif (file_exists($new_path_video)){

unlink($new_path_video);

rename($old_path_video,$new_path_video);

mysql_query("

UPDATE table_name

SET video = '$file_name_video' where id = '$current_id'");

}

else {(rename($old_path_video,$new_path_video));

mysql_query("

UPDATE table_name

SET video = '$file_name_video' where id = '$current_id'");

}

}


Thank you Cristian Gilè for support!! I hope this will be helpful for someone.
Best regards.