0
<form action="upload.php" method="post" enctype="multipart/form-data"> Select image to upload: <input type="file" name="fileToUpload" id="fileToUpload"> <input type="submit" value="Upload Image" name="submit"> </form> 

Above is my HTML code. Following is my upload PHP code:

<?php $target_dir = "uploads/"; $target_file = $target_dir . basename($_FILES["fileToUpload"]["name"]); $uploadOk = 1; $imageFileType = pathinfo($target_file,PATHINFO_EXTENSION); // Check if image file is a actual image or fake image 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; } } ?> 

When I upload an image it returns the following:

Warning: getimagesize(): Filename cannot be empty in C:\wamp64\www\company\test\upload.php on line 8

File is not an image.

Is there anything wrong with the code? I am using PHP v5.6.16, please help me.

$_FILES["fileToUpload"]["tmp_name"]); 

is empty but,

$_FILES["fileToUpload"]["name"]); 

is not empty.

2

2 Answers 2

0
if(isset($_POST["submit"]) && isset($_FILES['fileToUpload'])) { $file_temp = $_FILES['fileToUpload']['tmp_name']; $info = getimagesize($file_temp); if($info !== false) { echo "File is an image - " . $info["mime"] . "."; $uploadOk = 1; } else { echo "File is not an image."; $uploadOk = 0; } } else if(isset($_POST["submit"]) && !isset($_FILES['fileToUpload'])) { print "Form was submitted but file wasn't send"; exit; } else { print "Form wasn't submitted!"; exit; } 
Sign up to request clarification or add additional context in comments.

1 Comment

I did according to your answer.. the thing is $_FILES['fileToUpload']['tmp_name'] is empty, but $_FILES['fileToUpload']['name'] not empty. why is that??
0

You need to check $_FILES is not empty using !empty

if(isset($_POST["submit"]) && !empty($_FILES["fileToUpload"]) { // do your stuff } 

OR just check key exist and not null using isset

if (isset($_POST['submit'], $_FILES['fileToUpload'])) { // do your stuff } 

2 Comments

I did according to your answer.. the thing is $_FILES['fileToUpload']['tmp_name'] is empty, but $_FILES['fileToUpload']['name'] not empty. why is that??

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.