Turns out its not that straight forward. The following code:
- Uploads image files and pdfs only, only images and pdfs are allowed
- Renames uploaded files
- Strips all spaces in uploaded files
public function normal_upload(){
$uploadLocation = "uploads/";
$uploadMainTo = null;
if(isset($_FILES['MainImage'])){
$path = $_FILES['MainImage']['name']; // file means your input type file name
$ext = pathinfo($path, PATHINFO_EXTENSION);
if ($ext=="jpg" OR $ext=="jpeg" OR $ext=="gif" OR $ext=="png" OR $ext=="pdf") {
echo "Upload successful";
}else{
// your invalid code here like...
echo "Invalid image format. Only upload JPG or JPEG or GIF or PNG";
header('Location: http://localhost/upload_app/info/nu');
exit;
}
$main_image_name = $_FILES['MainImage']['name'];
$main_image_size = $_FILES['MainImage']['size'];
$main_image_tmp = $_FILES['MainImage']['tmp_name'];
$uploadMainTo = $uploadLocation.sa(time().mt_rand(43,672882).bin2hex(random_bytes(16)).trim($main_image_name));
$moveMain = move_uploaded_file($main_image_tmp,$uploadMainTo);
echo $uploadMainTo.'<br/>';
}
$uploadSecondTo = null;
if(isset($_FILES['SecondImage'])){
$path = $_FILES['SecondImage']['name']; // file means your input type file name
$ext = pathinfo($path, PATHINFO_EXTENSION);
if ($ext=="jpg" OR $ext=="jpeg" OR $ext=="gif" OR $ext=="png" OR $ext=="pdf") {
// your code here like...
echo "Upload successful";
}else{
// your invalid code here like...
echo "Invalid image format. Only upload JPG or JPEG or GIF or PNG";
header('Location: http://localhost/upload_app/info/nu');
exit;
}
$second_image_name = $_FILES['SecondImage']['name'];
$second_image_size = $_FILES['SecondImage']['size'];
$second_image_tmp = $_FILES['SecondImage']['tmp_name'];
$uploadMainTo = $uploadLocation.sa(time().mt_rand(43,672882).bin2hex(random_bytes(16)).trim($main_image_name));
$moveSecond = move_uploaded_file($second_image_tmp,$uploadSecondTo);
echo $uploadSecondTo.'<br/>';
}
$uploadPdfTo = null;
if(isset($_FILES['PDF'])){
$path = $_FILES['PDF']['name']; // file means your input type file name
$ext = pathinfo($path, PATHINFO_EXTENSION);
if ($ext=="jpg" OR $ext=="jpeg" OR $ext=="gif" OR $ext=="png" OR $ext=="pdf") {
// your code here like...
echo "Upload successful";
}else{
// your invalid code here like...
echo "Invalid image format. Only upload JPG or JPEG or GIF or PNG";
header('Location: http://localhost/upload_app/info/nu');
exit;
}
$pdf_name = $_FILES['PDF']['name'];
$pdf_size = $_FILES['PDF']['size'];
$pdf_tmp = $_FILES['PDF']['tmp_name'];
$uploadMainTo = $uploadLocation.sa(time().mt_rand(43,672882).bin2hex(random_bytes(16)).trim($main_image_name));
$movepdf = move_uploaded_file($pdf_tmp,$uploadPdfTo);
echo $uploadPdfTo.'<br/>';
}
}
define a helper sa_helper.php
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
if ( ! function_exists('sa')){
function sa($string){
return str_replace(' ', '', $string);
}
}
?>
and this is your view
<head>
<title>Upload Form</title>
</head>
<body>
<?php echo form_open_multipart('info/normal_upload');?>
<input type="file" name="PDF">
<input type="file" name="MainImage">
<input type="file" name="SecondImage">
<br /><br />
<input type="submit" value="upload" />
</form>
</body>
</html>
To upload files using jquery, use this form, it works as well
<script type="text/javascript" src="https://code.jquery.com/jquery-3.2.1.min.js"></script>
<script type="text/javascript">
$(document).ready(function() {
$("#form_img").submit(function(e){
e.preventDefault();
var formData = new FormData($("#form_img")[0]);
$.ajax({
url : $("#form_img").attr('action'),
type : 'POST',
data : formData,
contentType : false,
processData : false,
success: function(resp) {
console.log(resp);
}
});
});
});
</script>
<form action="http://localhost/upload_app/info/normal_upload" id="form_img" method="GET" role="form" enctype="multipart/form-data">
<input type="file" name="PDF">
<input type="file" name="MainImage">
<input type="file" name="SecondImage">
<button type="submit">Submit </button>
</form>