Page 1 of 1

uploading photos to folder

Posted: Sun Aug 27, 2006 2:56 pm
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?

Posted: Sun Aug 27, 2006 3:00 pm
by feyd
..parse error?

Posted: Sun Aug 27, 2006 3:08 pm
by dru_nasty
yeah, it says line six which would make it this line

Code: Select all

$uploadfile = $uploaddir . basename($_FILES['userfile']['name']);

Posted: Sun Aug 27, 2006 3:18 pm
by feyd
I'd like to know what the parse error is, specifically. What does php say, exactly?

Posted: Sun Aug 27, 2006 3:20 pm
by dru_nasty
Parse error: parse error in /Users/dru/Sites/testes/upload_file_script.php on line 6

Posted: Sun Aug 27, 2006 3:28 pm
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.

Posted: Sun Aug 27, 2006 3:32 pm
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

Posted: Sun Aug 27, 2006 3:38 pm
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?

Posted: Sun Aug 27, 2006 3:49 pm
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.

Posted: Sun Aug 27, 2006 3:50 pm
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 :(

Posted: Sun Aug 27, 2006 3:58 pm
by dru_nasty
the file im trying to upload is only 4kb

Posted: Sun Aug 27, 2006 4:01 pm
by feyd
PHP would like to disagree. :)

Posted: Sun Aug 27, 2006 11:17 pm
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 ;)