satya satya - 7 days ago 5
PHP Question

Can not upload docs/pdf file using PHP

I have one issue while uploading file using PHP. I can upload the image type file successfully but could not able to upload the pdf/docs type file. I am explaining my code below.

$target_dir = "../../admin/enquiry/";
$fileName = generateRandom() . '_' . $_FILES['attachment']['name'];
$target_file = $target_dir . basename($fileName);
$imageFileType = pathinfo($target_file, PATHINFO_EXTENSION);
$uploadOk = 1;
$check = getimagesize($_FILES['attachment']['tmp_name']);
header('Content-Type: application/json');
if ($check !== false) {
$result['msg'] = "check not false.";
// echo json_encode(array('status' => $check['mime']));
$uploadOk = 1;
} else {
$result['msg'] = "check false.";
// echo json_encode(array('status' => 'upload failed'));
$uploadOk = 0;
}

if (file_exists($target_file)) {
echo json_encode(array('status' => 'file already exists'));
$uploadOk = 0;
}
if ($uploadOk == 0) {
//
} else {
if (move_uploaded_file($_FILES['attachment']['tmp_name'], $target_file)) {
$result['msg'] = "File has uploaded successfully.";
$result['num'] = 1;
$result['img'] =$fileName;
}else{
$result['msg'] = "Sorry, Your File could not uploaded to the directory.";
$result['num'] = 0;
}

}


Here i am getting message
check false.
means there is some problem with
getimagesize
. I can also passing the file size 138kb but in case of image its uploading successfully but other type file could not upload but i need to upload those.Please help me.

Answer

At the very top of the file, add these code to enable php error.

error_reporting(-1);
ini_set('display_errors', 'On');
set_error_handler("var_dump");


  $target_dir = "../../admin/enquiry/";
  if(isset($_FILES['attachment'])){
   $errors= array();
   $file_name =  generateRandom() . '_' .$_FILES['attachment']['name'];
   $target_file = $target_dir . basename($file_name);
   $file_size = $_FILES['attachment']['size'];
   $file_tmp = $_FILES['attachment']['tmp_name'];
   $file_type = $_FILES['attachment']['type'];
   $file_ext=strtolower(end(explode('.',$_FILES['attachment']['name'])));

   $extension= array("jpeg","jpg","png","pdf");

   if(in_array($file_ext,$extension)=== false){
       $errors[]="extension not allowed, please choose a JPEG,PNG or PDF file.";
   }

   if($file_size > 2097152) {
       $errors[]='File size must be exactely 2 MB';
   }

   if(empty($errors)==true) {
       move_uploaded_file($file_tmp,$target_file);
       echo "Success";
   }else{
       print_r($errors);
   }
  }
 ?>
Comments