0

I have an example code below working for images as user's input,

<?php
$target_dir = "uploads/";
$target_file = $target_dir . basename($_FILES["fileToUpload"]["name"]);
$uploadOk = 1;
$imageFileType = pathinfo($target_file,PATHINFO_EXTENSION);

if(isset($_POST["submit"])) {
    $check = getimagesize($_FILES["fileToUpload"]["tmp_name"]);
    if($check !== false) {
        echo "File is an image - " . $check["mime"] . ".";
        $uploadOk = 1;
    } else {
        echo "File is not an image.";
        $uploadOk = 0;
    }
}

if (file_exists($target_file)) {
    echo "Sorry, file already exists.";
    $uploadOk = 0;
}

if ($_FILES["fileToUpload"]["size"] > 500000) {
    echo "Sorry, your file is too large.";
    $uploadOk = 0;
}

if($imageFileType != "jpg" && $imageFileType != "png" && $imageFileType != "jpeg"
&& $imageFileType != "gif" ) {
    echo "Sorry, only JPG, JPEG, PNG & GIF files are allowed.";
    $uploadOk = 0;
}

if ($uploadOk == 0) {
    echo "Sorry, your file was not uploaded.";

} else {
    if (move_uploaded_file($_FILES["fileToUpload"]["tmp_name"], $target_file)) {
        echo "The file ". basename( $_FILES["fileToUpload"]["name"]). " has been uploaded.";
    } else {
        echo "Sorry, there was an error uploading your file.";
    }
}
?>

but my main intention is to upload Pdf & Docx as user's input this time instead of images.

I tried to change but couldn't succeeded. Any link or at least a description with a couple of links I can assume the rest works for me (I hoped if it's a duplicate but not asked the same way I guess).

Erhan Yaşar
  • 847
  • 1
  • 9
  • 25
  • Change the condition which checks file formats/etension – Ravinder Reddy Mar 30 '17 at 15:49
  • @RavinderReddy there are lots of things to be changed, you may specify the things like (e.g. change '$imageFileType' to '$fileType') and so on. I don't know the language itself and I could't find the proper terms or API either. – Erhan Yaşar Mar 30 '17 at 15:52
  • 1
    check this link http://stackoverflow.com/questions/11601342/upload-doc-or-pdf-using-php – Ravinder Reddy Mar 30 '17 at 15:56
  • tx buddy, I'm on it.. – Erhan Yaşar Mar 30 '17 at 15:58
  • show us the error or what u tryed – bxN5 Mar 30 '17 at 16:04
  • @bxN5 I used `$fileType` instead of `$imageFileType` and `getfilesize` instead `getimagesize`. After getting _"Fatal error: Call to undefined function getfilesize() in /home/u6497426/public_html/portfolio/web_apps/file_upload/uploadphp/upload.php on line 8"_ I assume `$fileType` is ok but couldn't find an expression to change with `getimagesize`. Just looking for the link provided above. – Erhan Yaşar Mar 30 '17 at 16:29

1 Answers1

0

Basically, I just changed all $imagefileType to $fileType and it works!! I just skipped the image check as shown with the comment section below. Even not sure if it is needed for pdf/doc & docx unlike image. I appreciate If anyone provide additional information I skipped or it's already fine this way @bxN5 @Ravinder Reddy.

It's just simple as is.

<?php
$target_dir = "uploads/";
$target_file = $target_dir . basename($_FILES["fileToUpload"]["name"]);
$uploadOk = 1;
$fileType = pathinfo($target_file,PATHINFO_EXTENSION);
/*
if(isset($_POST["submit"])) {
    $check = getfilesize($_FILES["fileToUpload"]["tmp_name"]);
    if($check !== false) {
        echo "File is an image - " . $check["mime"] . ".";
        $uploadOk = 1;
    } else {
        echo "File is not an image.";
        $uploadOk = 0;
    }
}
*/
if (file_exists($target_file)) {
    echo "Sorry, file already exists.";
    $uploadOk = 0;
}
if ($_FILES["fileToUpload"]["size"] > 500000) {
    echo "Sorry, your file is too large.";
    $uploadOk = 0;
}
if($fileType != "pdf" && $fileType != "doc" && $fileType != "docx") {
    echo "Sorry, only PDF, DOC & DOCX files are allowed.";
    $uploadOk = 0;
}
if ($uploadOk == 0) {
    echo "Sorry, your file was not uploaded.";
} else {
    if (move_uploaded_file($_FILES["fileToUpload"]["tmp_name"], $target_file)) {
        echo "The file ". basename( $_FILES["fileToUpload"]["name"]). " has been uploaded.";
    } else {
        echo "Sorry, there was an error uploading your file.";
    }
}
?>
Erhan Yaşar
  • 847
  • 1
  • 9
  • 25