A have a code that i'm trying to modify upload script
Posted: Wed May 28, 2008 12:43 pm
All i want to do is for the upload script to overwrite the existing file in a specific Dir, but it's giving me this error.
If i remove this from the script will that work for what i want to achieve.
The Big Picture:
Thanks for your help in advance.
Code: Select all
// Check if the file already exists on the server..
} Elseif(file_exists($folder.$file_name[$i])) {
$error.= "The file: ".$_FILES['file']['name'][$i]." exists on this server, please rename your file.<br />Your file(s) were <b>not</b> uploaded.<br />";
}
The Big Picture:
Code: Select all
<?
error_reporting(7);
// Max size PER picture in KB, not bytes for simplicity!
$max_file_size="5120";
// Max size for all picutres COMBINED in KB, not bytes for simplicity!
$max_combined_size="25600";
//How many file uploads do you want to allow at a time?
$file_uploads="5";
//The name of the uploader..
$websitename="Your name here";
// Use random file names? true=yes (recommended), false=use original file name. Random names will help prevent overwritting of existing files!
$random_name= false;
// Please keep the array structure.
$allow_types=array("jpg", "jpeg", "gif", "png");
// Path to files folder. If this fails use $fullpath below. With trailing slash
$folder="uploads/";
// Full url to where files are stored. With Trailing Slash
$full_url="http://www.jaybirdfolio.com/uploads/";
// Only use this variable if you wish to use full server paths. Otherwise leave this empty! With trailing slash
$fullpath="http://www.jaybirdfolio.com/uploads/";
//Use this only if you want to password protect your uploads.
//Not recommended for free picture hosting sites)
$password="";
/*
//================================================================================
* ! ATTENTION !
//================================================================================
: Don't edit below this line unless you know some php. Editing some variables or other stuff could cause undeseriable results!!
*/
// MD5 the password.. why not?
$password_md5=md5($password);
// If you set a password this is how they get verified!
If($password) {
If($_POST['verify_password']==true) {
If(md5($_POST['check_password'])==$password_md5) {
setcookie("phUploader",$password_md5,time()+86400);
sleep(1); //seems to help some people.
header("Location: http://".$_SERVER['HTTP_HOST'].$_SERVER['PHP_SELF']);
exit;
}
}
}
// The password form, if you set a password and the user has not entered it this will show.
$password_form="";
If($password) {
If($_COOKIE['phUploader']!=$password_md5) {
$password_form="<form method=\"POST\" action=\"".$_SERVER['PHP_SELF']."\">\n";
$password_form.="<table align=\"center\" class=\"table\">\n";
$password_form.="<tr>\n";
$password_form.="<td width=\"100%\" class=\"table_header\" colspan=\"2\">Password Required</td>\n";
$password_form.="</tr>\n";
$password_form.="<tr>\n";
$password_form.="<td width=\"35%\" class=\"table_body\">Enter Password:</td>\n";
$password_form.="<td width=\"65%\" class=\"table_body\"><input type=\"password\" name=\"check_password\" /></td>\n";
$password_form.="</tr>\n";
$password_form.="<td colspan=\"2\" align=\"center\" class=\"table_body\">\n";
$password_form.="<input type=\"hidden\" name=\"verify_password\" value=\"true\">\n";
$password_form.="<input type=\"submit\" value=\" Verify Password \" />\n";
$password_form.="</td>\n";
$password_form.="</tr>\n";
$password_form.="</table>\n";
$password_form.="</form>\n";
}
}
// Function to get the extension a file.
function get_ext($key) {
$key=strtolower(substr(strrchr($key, "."), 1));
// Cause there the same right?
$key=str_replace("jpeg","jpg",$key);
return $key;
}
$ext_count=count($allow_types);
$i=0;
foreach($allow_types AS $extension) {
//Gets rid of the last comma for display purpose..
If($i <= $ext_count-2) {
$types .="*.".$extension.", ";
} Else {
$types .="*.".$extension;
}
$i++;
}
unset($i,$ext_count); // why not
$error="";
$display_message="";
$uploaded==false;
// Dont allow post if $password_form has been populated
If($_POST['submit']==true AND !$password_form) {
For($i=0; $i <= $file_uploads-1; $i++) {
If($_FILES['file']['name'][$i]) {
$ext=get_ext($_FILES['file']['name'][$i]);
$size=$_FILES['file']['size'][$i];
$max_bytes=$max_file_size*1024;
// For random names
If($random_name){
$file_name[$i]=time()+rand(0,100000).".".$ext;
} Else {
$file_name[$i]=$_FILES['file']['name'][$i];
}
//Check if the file type uploaded is a valid file type.
If(!in_array($ext, $allow_types)) {
$error.= "Invalid extension for your file: ".$_FILES['file']['name'][$i].", only ".$types." are allowed.<br />Your file(s) were <b>not</b> uploaded.<br />";
//Check the size of each file
} Elseif($size > $max_bytes) {
$error.= "Your file: ".$_FILES['file']['name'][$i]." is to big. Max file size is ".$max_file_size."kb.<br />Your file(s) were <b>not</b> uploaded.<br />";
// Check if the file already exists on the server..
} Elseif(file_exists($folder.$file_name[$i])) {
$error.= "The file: ".$_FILES['file']['name'][$i]." exists on this server, please rename your file.<br />Your file(s) were <b>not</b> uploaded.<br />";
}
} // If Files
} // For
//Tally the size of all the files uploaded, check if it's over the ammount.
$total_size=array_sum($_FILES['file']['size']);
$max_combined_bytes=$max_combined_size*1024;
If($total_size > $max_combined_bytes) {
$error.="The max size allowed for all your files combined is ".$max_combined_size."kb<br />";
}
// If there was an error take notes here!
If($error) {
$display_message=$error;
} Else {
// No errors so lets do some uploading!
For($i=0; $i <= $file_uploads-1; $i++) {
If($_FILES['file']['name'][$i]) {
If(@move_uploaded_file($_FILES['file']['tmp_name'][$i],$folder.$file_name[$i])) {
$uploaded=true;
} Else {
$display_message.="Couldn't copy ".$file_name[$i]." to server, please make sure ".$folder." is chmod 777 and the path is correct.\n";
}
}
} //For
} // Else
} // $_POST AND !$password_form
/*
//================================================================================
* Start the form layout
//================================================================================
:- Please know what your doing before editing below. Sorry for the stop and start php.. people requested that I use only html for the form..
*/
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="Content-Language" content="en-us" />
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title><?php echo $websitename; ?>::Uploader</title>
<?
If($password_form) {
Echo $password_form;
} Elseif($uploaded==true) {?>
<body>
<table align="center"class="table">
<tr>
<td class="table_header" colspan="2"><div align="center">
<h1><b>your file(s) have been uploaded!</b> </h1>
</div></td>
</tr>
<tr>
<td class="table_body">
<div align="center">
<a href="<?=$_SERVER['PHP_SELF'];?>" title="upload more file(s)">
<h3>Upload More</h3>
</a>
<div align="left"><br />
<?
For($i=0; $i <= $file_uploads-1; $i++) {
If($_FILES['file']['name'][$i]) {
$file=$i+1;
Echo("<b>Direct URL #".$file.":</b> <a href=\"".$full_url.$file_name[$i]."\" target=\"_blank\">".$full_url.$file_name[$i]."</a><br /><br />\n");
}
}
?>
<br />
<a href="/" title="upload more image(s)">
<h3>Upload More</h3>
</a>
<p><span class="style1">© 2008 Your name</span></p>
</div></td>
</tr>
</table>
<?} Else {?>
<?If($display_message){?>
<div align="center" class="error_message"><?=$display_message;?></div>
<br />
<?}?>
<form action="<?=$_SERVER['PHP_SELF'];?>" method="post" enctype="multipart/form-data" name="phuploader">
<table align="center"class="table">
<?For($i=0;$i <= $file_uploads-1;$i++) {?>
<tr>
<td class="table_body" width="22%"><b>select file(s):</b> </td>
<td class="table_body" width="78%"><input type="file" name="file[]" size="30" /></td>
</tr>
<?}?>
<tr>
<td colspan="2" align="center" class="table_footer">
<input type="hidden" name="submit" value="true" />
<input name="Upload" type="submit" title="Upload Images" value="upload!"/></td>
</tr>
</table>
</form>
<div align="center">
<p><span class="style1">© 2008 Your Name</span></p>
<!-- I worked very hard on this script, please do not delete this link back, its only on the home page. Thanks! -->
<p><span class="style1">Powered by: <a href="http://dapezboy.org" title="Go to creator's page" target="_blank">AK design</a>'s power file uploader</span></p>
<p>
<?php } ?>
</p>
</div>
</body>
</html>