Uploading images

How come I keep getting no files specified ? how do I figure out the path. If thats the problem. This page is on my website where my sites hosted too.

<?php
if($file_name !="") {
copy ("$file", "/usr/local/root/$file_name")
        or die("Could not Copy the File");
            }
            else {die("No Files Specified"); }
            ?>
            <html><head><title>Upload Complete</title></head>
            <body><h3>File upload succeeded...</h3>
            <ul>
            <li>Sent: <?php echo "$file_name"; ?>
            <li>Size: <?php echo "$file_size"; ?>
            <li>Type: <?php echo "$file_type"; ?>
            </ul>
            <a href="<?php echo "$file_name" ?> ">
                                         Click Here to View File</a>
                                                       </body>
                                                       </html>
LVL 1
smphilAsked:
Who is Participating?

Improve company productivity with a Business Account.Sign Up

x
 
cLFlaVAConnect With a Mentor Commented:
Phil.........

First of all, change your code to this:
<?php

if($file_name != "") {
    copy ($file_name, "/usr/local/root/$file_name") or die("Could not Copy the File");
} else {
    die("No Files Specified");
}

?>

Second of all:
Where are you getting $file_name from?  It should be taken from the $_FILES global array.  Try this:

<?php
$file_name = $_FILES['file_field_name']['tmp_name'];
if($file_name != "") {
    copy ($file_name, "/usr/local/root/$file_name") or die("Could not Copy the File");
} else {
    die("No Files Specified");
}

?>
0
 
darksinclairCommented:
Do you have "enctype='multipart/form-data'" in your form tag?  This is required to post files.

also, here is an upload function you could try using :

function upload_file()
{

        //file too big
        if($_FILES['userfile']['size']>$_POST['MAX_FILE_SIZE'] || !$_FILES['userfile']['size'] || $_FILES['userfile']['error']==2)
             return -1;
        //file name
        $userfile_t=$_FILES['userfile']['tmp_name'];
        //upload dir
        $dir="absolute/path/to/upload/dir";

        $dest=$dir . $userfile;

        //file correctly uploaded
        if(is_uploaded_file($userfile_t))
        {
                //we move it to upload dir
                if(!@move_uploaded_file($userfile_t,$dest))
                        return -3;
                //set perission
                @chmod($dest, 0664);
        }
        else
                return -3;

        //all right!
        return 1;
}


I think your problem is that your using $file as the filename.. ( i presume that this is what you call the input text box name on your form) and doing this is correct. you must reference the filename using $_REQUEST['file']['tmp_name'] to get the name of the file being uploaded.

Cheers,
0
 
smphilAuthor Commented:

Cory
$file_name  is the name of the actual uploaded file
0
 
cLFlaVACommented:
Then try...

$file_name = $_FILES['file_name']['tmp_name'];
if($file_name != "") {
    copy ($file_name, "/usr/local/root/$file_name") or die("Could not Copy the File");
} else {
    die("No Files Specified");
}

And do make sure that your form has the property enctype="multipart/form-data"
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.