uploading photos to folder

PHP programming forum. Ask questions or help people concerning PHP code. Don't understand a function? Need help implementing a class? Don't understand a class? Here is where to ask. Remember to do your homework!

Moderator: General Moderators

Post Reply
dru_nasty
Forum Commoner
Posts: 81
Joined: Sat Sep 10, 2005 10:26 am

uploading photos to folder

Post by dru_nasty »

got this script from php.net and only changed the directory where i want images to be uploaded to but it's not working.

here is my form:

Code: Select all

<!-- The data encoding type, enctype, MUST be specified as below -->
<form enctype="multipart/form-data" action="upload_file_script.php" method="POST">
    <!-- MAX_FILE_SIZE must precede the file input field -->
    <input type="hidden" name="MAX_FILE_SIZE" value="30000" />
    <!-- Name of input element determines name in $_FILES array -->
    Send this file: <input name="userfile" type="file" />
    <input type="submit" value="Send File" />
</form>
and here is upload_file_script.php:

Code: Select all

<?php
// In PHP versions earlier than 4.1.0, $HTTP_POST_FILES should be used instead
 // of $_FILES.

$uploaddir = 'uploads';
$uploadfile = $uploaddir . basename($_FILES['userfile']['name']);
echo '<pre>';
 if (move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile)) {
    echo "File is valid, and was successfully uploaded.\n";
 } else {
    echo "Possible file upload attack!\n";
 }

 echo 'Here is some more debugging info:';
print_r($_FILES);

 print "</pre>";

?>
I changed $uploaddir to uploads (which is a folder i have on the server in the same directory as the form and script). but i keep getting a parse error. Anyone know what's up?
User avatar
feyd
Neighborhood Spidermoddy
Posts: 31559
Joined: Mon Mar 29, 2004 3:24 pm
Location: Bothell, Washington, USA

Post by feyd »

..parse error?
dru_nasty
Forum Commoner
Posts: 81
Joined: Sat Sep 10, 2005 10:26 am

Post by dru_nasty »

yeah, it says line six which would make it this line

Code: Select all

$uploadfile = $uploaddir . basename($_FILES['userfile']['name']);
User avatar
feyd
Neighborhood Spidermoddy
Posts: 31559
Joined: Mon Mar 29, 2004 3:24 pm
Location: Bothell, Washington, USA

Post by feyd »

I'd like to know what the parse error is, specifically. What does php say, exactly?
dru_nasty
Forum Commoner
Posts: 81
Joined: Sat Sep 10, 2005 10:26 am

Post by dru_nasty »

Parse error: parse error in /Users/dru/Sites/testes/upload_file_script.php on line 6
User avatar
feyd
Neighborhood Spidermoddy
Posts: 31559
Joined: Mon Mar 29, 2004 3:24 pm
Location: Bothell, Washington, USA

Post by feyd »

Well that was anticlimactic.

Do you have a hex editor handy? If not, get one. Once you have one, open the file so you can look at the binary data. Look at the code in the editor. Make sure there isn't any odd unprintable characters floating on that line. Check just after and just before the line as well.
User avatar
Ollie Saunders
DevNet Master
Posts: 3179
Joined: Tue May 24, 2005 6:01 pm
Location: UK

Post by Ollie Saunders »

You can get rid of any of those unprintable characters just by selecting the whole line and retyping it. Probably.
Parse error: parse error in /Users/dru/Sites/testes/upload_file_script.php on line 6
What version of PHP is this? Because I thought a parse error always reported the token type that was responsible. Something like this:

Code: Select all

Parse error: syntax error, unexpected '}' in /osis/x/test/www/index.php on line 10
dru_nasty
Forum Commoner
Posts: 81
Joined: Sat Sep 10, 2005 10:26 am

Post by dru_nasty »

k, re-typed it from scratch now im getting an error echoed at least:

Possible file upload attack!
Here is some more debugging info:Array
(
[userfile] => Array
(
[name] => american flag.jpg
[type] =>
[tmp_name] =>
[error] => 2
[size] => 0
)

)

and thisi is php version 4.4.1

Could it be something with the directory? I have proper permissions.
Can anyone see if this works for them?
User avatar
feyd
Neighborhood Spidermoddy
Posts: 31559
Joined: Mon Mar 29, 2004 3:24 pm
Location: Bothell, Washington, USA

Post by feyd »

Code: Select all

[feyd@home]>php -r "print_r(get_defined_constants());" | grep -Ein "upload.*\b2\b"
45:    [UPLOAD_ERR_FORM_SIZE] => 2
That tells me that your file exceeded the maximum size that was set by the form.
User avatar
Ollie Saunders
DevNet Master
Posts: 3179
Joined: Tue May 24, 2005 6:01 pm
Location: UK

Post by Ollie Saunders »

Could it be something with the directory? I have proper permissions.
Can anyone see if this works for them?
That could very well be the problem.

Edit: nope feyd is better than me :(
dru_nasty
Forum Commoner
Posts: 81
Joined: Sat Sep 10, 2005 10:26 am

Post by dru_nasty »

the file im trying to upload is only 4kb
User avatar
feyd
Neighborhood Spidermoddy
Posts: 31559
Joined: Mon Mar 29, 2004 3:24 pm
Location: Bothell, Washington, USA

Post by feyd »

PHP would like to disagree. :)
dru_nasty
Forum Commoner
Posts: 81
Joined: Sat Sep 10, 2005 10:26 am

Post by dru_nasty »

feyd wrote:

Code: Select all

[feyd@home]>php -r "print_r(get_defined_constants());" | grep -Ein "upload.*\b2\b"
45:    [UPLOAD_ERR_FORM_SIZE] => 2
That tells me that your file exceeded the maximum size that was set by the form.

Yeah....not sure what that means, like i said it was only a 4kb file so I'm at a loss i suppose. Thanks for taking a look though ;)
Post Reply