runeveryday
runeveryday

Reputation: 2799

PHP---why can't I upload image with PHP?

The code

<?php
    $allowed_filetypes = array('.jpg','.gif','.bmp','.png');
    $max_filesize = 5242888;
    $upload_path = '/files';
    $filename =$_FILES['userfile']['name'];
    $ext = substr($filename,strpos($filename,'.'),strlen($filename)-1); //Get the     extension form the filename.

    if(!in_array($ext,$allowed_filetypes))
        die('the file you attempted to upload is not allowed.');

    if(filesize($_FILES['userfile']['size'])>$max_filesize)
        die('the file you attempted to upload is too large.');

    if(!is_writable($upload_path)) {
        die('you cannot upload to the specified directory,please CHMOD it to 777.');
    }

    if (move_uploaded_file( $_FILES['userfile']['tmp_name'],$upload_path.$filename))
    {
        echo 'you file upload successful.view the file <a      href=".$upload_path.$filename.title="your file">here</a>';
    }
    else{
        echo 'failed';
    }

When I upload a JPEG image, it shows the error "The file you attempted to upload is not allowed.". What's wrong with my code?

The main HTML code:

<form action="upload.php" method="post" enctype="multipart/form-data">
    <input type="file" name="userfile" id="file"/>
    <button>upload</button>

Upvotes: 0

Views: 1643

Answers (4)

pooja
pooja

Reputation: 2432

Try with a submit button, <input type="submit " name="upload" value="upload"/>.

Upvotes: 0

Wesley
Wesley

Reputation: 800

<form action="upload.php" method="post" enctype="multipart/form-data"> 
    <input type="file" name="userfile" id="file"/>
    <input type="submit" name="sendFile" value="Upload" />
</form>

that should work.

Upvotes: 0

Ho&#224;ng Long
Ho&#224;ng Long

Reputation: 10848

Try replace:

$ext = substr($filename,strpos($filename,'.'),strlen($filename)-1); 
//get the  extension form the filename

by

$ext = substr($filename,strpos($filename,'.'),4);
//get the     extension form the filename 

Upvotes: 0

Pradeep Singh
Pradeep Singh

Reputation: 3634

Please use in form tag

 <form action="upload.php" method="post" enctype="multipart/form-data">

Upvotes: 2

Related Questions