Re: Pictureupload

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 





twistednetadmin wrote:
I have made this script to upload pictures into a picturegallery on a
website.
The script works just as I expected, but with one huge flaw. It doesn't work
from every users computer.
I can upload pictures with no problem, but another user get's an
errormessage. the other user emailed the picture to me and I could upload it
with no errors.

Here's the script.

<form name="guildimage_upload" method="post" action="<?php
$_SERVER['PHP_SELF'] ?>" enctype="multipart/form-data">





<table class="normal" border="0" align="center">
<tr>
<td height="200" align="center" valign="bottom"
class="holyheader18">Screenshot upload</td></tr>
<tr>
<td align="center" colspan="2">
<table border="1">
<tr>
<td>
Only pictures with the .jpg extension and size 300kb or less will be
uploaded!<br>
Imagenames should not contain quotes or any special signs!!<br>

</td>
</tr>
</table>
</td>
</tr>
<tr>
<td>
File:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;

<input type="hidden" name="MAX_FILE_SIZE" value="300000">
<input type="file" name="guildimage">


</td>
</tr>
<tr>
<td>

Comment:
<input name="guildimage_comment" type="text" size="40" maxlength="40">

</td>
<td>
<input type="submit" name="submit" value="Summon">
</td>
</tr>
</tr>
<tr>

<td height="160" colspan="2" class="maintext" valign="top">


<?php
chmod("/guildimages/", 0777);
######################################################
###Uploads the image and checks if the image exists already###
######################################################

if (isset($_POST['submit'])) //If you push the submit-button
{

 $sysfolder="/guildimages/";
$filename="".$_FILES['guildimage']['name']."";

if (file_exists($sysfolder . $filename)) //If the filename exists.
{

 echo "Filename exists or no file selected. Please rename the file or select
a file";

}

 elseif ($_FILES['guildimage']['type'] == "image/jpeg") //And if the image
is .jpg less or equal 300kb...
{



You may want to also do something like

if(filesize($filename) > 300) {
   echo "File too large";
}







copy ($_FILES['guildimage']['tmp_name'],
"/guildimages/".$_FILES['guildimage']['name']) //Copy the image to
/guildimages
 or die("Could not copy file"); //Or don't if it's wrong size or format



Here you should be using move_uploaded_file() instead of copy()

http://php.net/move_uploaded_file






 $insertSQL = sprintf("INSERT INTO guildimages (guildimage_date,
guildimage_name, guildimage_comment, posted_by) VALUES (NOW(), '%s', '%s',
'%s')",
 ($_FILES['guildimage']['name']),
 ($_POST['guildimage_comment']),
 ($_SESSION['logname']));
 $guildimage_upload = mysql_query($insertSQL) or die(mysql_error());
//insert all info to the DB



You probably want to do some checks above (before inserting), maybe use http://php.net/manual/en/function.is-uploaded-file.php




echo "Result:<br>\n";
 echo "Filename: ".$_FILES['guildimage']['name']."<br>\n";
 echo "Filesize: ".$_FILES['guildimage']['size']." byte<br>\n";
 echo "Filtype: ".$_FILES['guildimage']['type']."<br>\n";
 echo "Congrats! It worked!\n";
 }
 else
{

echo "Result:<br>\n";
echo "Now that didn't seem to work... <br>\n
Did you try a wrong format or size? <br>\n
File that failed--> (".$_FILES['guildimage']['name'].")<br>";

}
}

?>

</td>
</tr>
</table>

</form>

Can anyone see what's wrong? Since it works from some computers and not from
all?


--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php


[Index of Archives]     [PHP Home]     [Apache Users]     [PHP on Windows]     [Kernel Newbies]     [PHP Install]     [PHP Classes]     [Pear]     [Postgresql]     [Postgresql PHP]     [PHP on Windows]     [PHP Database Programming]     [PHP SOAP]

  Powered by Linux