Reputation:
Am uploading multiple images from single input
<input type="file" name="files[]" multiple id="files" class="hidde fileInpu"/>
and i made the following code to read details of image uploading
Full processing code
$newname = md5(rand() * time());
$file1 = isset($_FILES['files']['name'][0]) ? $_FILES['files']['name'][0] : null;
$file2 = isset($_FILES['files']['name'][1]) ? $_FILES['files']['name'][1] : null;
$file3 = isset($_FILES['files']['name'][2]) ? $_FILES['files']['name'][2] : null;
$file4 = isset($_FILES['files']['name'][3]) ? $_FILES['files']['name'][3] : null;
$file5 = isset($_FILES['files']['name'][4]) ? $_FILES['files']['name'][4] : null;
if (isset($_FILES['files'])) {
$errors = array();
foreach ($_FILES['files']['tmp_name'] as $key => $tmp_name) {
$file_name = $key . $_FILES['files']['name'][$key];
$file_size = $_FILES['files']['size'][$key];
$file_tmp = $_FILES['files']['tmp_name'][$key];
$file_type = $_FILES['files']['name'][$key];
$extarray = explode('.', $file_type);
$ext = end($extarray);
// png , jpg, jpeg
if ($file_size > 9097152000) {
$errors[] = 'File size must be less than 2 MB';
}
$desired_dir = "user_data/";
if (empty($errors) == true) {
if (is_dir($desired_dir) == false) {
mkdir("$desired_dir", 0700); // Create directory if it does not exist
}
if (is_dir("$desired_dir/" . $file_name) == false) {
move_uploaded_file($file_tmp, "$desired_dir/" . $newname . $file_name);
} else { // rename the file if another one exist
$new_dir = "$desired_dir/" . $newname . $file_name;
rename($file_tmp, $new_dir);
}
} else {
print_r($errors);
}
}
if (empty($error)) {
echo "FILE : $newname.$ext<br>";
echo "FILE : $newname.$ext<br>";
echo "FILE : $newname.$ext<br>";
echo "FILE : $newname.$ext<br>";
echo "FILE : $newname.$ext<br>";
}
I need to display file extension of each file in echo
and i need to skip file name insted of file name i need to store $key
the above code reads image name,size,file type, tmp name
now my problem is
$file_type = $_FILES['files']['type'][$key];
this code delivers file type like image/jpeg
But i need to get extension .jpeg
how do i get extension in .jpeg
and used this method after reading this topic PHP file extension issue $ext = pathinfo($file_name, PATHINFO_EXTENSION)[$key];
i get error all file are in same type how do i read each file extension
Upvotes: 1
Views: 676
Reputation: 6031
use php "pathinfo" function to get extension.
$ext = pathinfo($_FILES['news_image']['name'], PATHINFO_EXTENSION);
$file_type = pathinfo($_FILES['files']['name'][$key], PATHINFO_EXTENSION);
Reference For pathinfo
Here i post full code to get extension. i have add pathinfo function to get extension
<form method="post" action="index.php" enctype="multipart/form-data">
<input type="file" name="files[]" multiple id="files" class="hidde fileInpu"/>
<input title="" type="submit" name="submit" />
</form>
<?php
if (isset($_POST['submit'])) {
$newname = md5(rand() * time());
$file1 = isset($_FILES['files']['name'][0]) ? $_FILES['files']['name'][0] : null;
$file2 = isset($_FILES['files']['name'][1]) ? $_FILES['files']['name'][1] : null;
$file3 = isset($_FILES['files']['name'][2]) ? $_FILES['files']['name'][2] : null;
$file4 = isset($_FILES['files']['name'][3]) ? $_FILES['files']['name'][3] : null;
$file5 = isset($_FILES['files']['name'][4]) ? $_FILES['files']['name'][4] : null;
$errors = array();
foreach ($_FILES['files']['tmp_name'] as $key => $tmp_name) {
$file_name = $key . $_FILES['files']['name'][$key];
$file_size = $_FILES['files']['size'][$key];
$file_tmp = $_FILES['files']['tmp_name'][$key];
$file_type = $_FILES['files']['name'][$key];
echo $file_name;
echo $ext = pathinfo($_FILES['files']['name'][$key], PATHINFO_EXTENSION);
die;
//$extarray = explode('.', $file_type);
// $ext = end($extarray);
// png , jpg, jpeg
if ($file_size > 9097152000) {
$errors[] = 'File size must be less than 2 MB';
}
$desired_dir = "user_data/";
if (empty($errors) == true) {
if (is_dir($desired_dir) == false) {
mkdir("$desired_dir", 0700); // Create directory if it does not exist
}
if (is_dir("$desired_dir/" . $file_name) == false) {
move_uploaded_file($file_tmp, "$desired_dir/" . $newname . $file_name);
} else { // rename the file if another one exist
$new_dir = "$desired_dir/" . $newname . $file_name;
rename($file_tmp, $new_dir);
}
} else {
print_r($errors);
}
}
if (empty($error)) {
echo "FILE : $newname.$ext<br>";
echo "FILE : $newname.$ext<br>";
echo "FILE : $newname.$ext<br>";
echo "FILE : $newname.$ext<br>";
echo "FILE : $newname.$ext<br>";
}
}
?>
Upvotes: 1
Reputation:
try using this example
$file_type = $_FILES['files']['name'][$key];
$extarray=explode('.',$file_type);
$ext=end($extarray);
// png , jpg, jpeg
Upvotes: 0