Page 1 of 1

A have a code that i'm trying to modify upload script

Posted: Wed May 28, 2008 12:43 pm
by designedfree4u
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.

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 />";
                
            }
 
If i remove this from the script will that work for what i want to achieve.

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">&copy; 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">&copy; 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> 
 
Thanks for your help in advance.

Re: A have a code that i'm trying to modify upload script

Posted: Wed May 28, 2008 1:06 pm
by hansford
you stated you want the script to overwrite an existing file, but you're giving error messages if the file exists - I'm not understanding what you want to do.

$path = $_SERVER['DOCUMENT_ROOT'] . "/xml/file001.txt";

if(file_exists($path)){

echo "File already exists";
}
else{
$doc = "rewriting file string";
$fp = fopen($path,'r+'); //should point to the beginning of file
$write = fwrite($fp,$doc);
fclose($fp);

Re: A have a code that i'm trying to modify upload script

Posted: Wed May 28, 2008 1:19 pm
by designedfree4u
Thats the thing. What do i need to remove so that i don't mess up the script, but it rewrites the jpg in the specific Dir. If i remove the code below I get and error.

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 />";
                
            }
 
I'm kinda new at this sorry, and thank you.

Re: A have a code that i'm trying to modify upload script

Posted: Wed May 28, 2008 2:10 pm
by hansford
what error are you getting?

Re: A have a code that i'm trying to modify upload script

Posted: Wed May 28, 2008 2:20 pm
by designedfree4u
Parse error: syntax error, unexpected $end in /home/jaybirdf/public_html/upload.php on line 268

Line 268 says

268 </html>

Re: A have a code that i'm trying to modify upload script

Posted: Wed May 28, 2008 11:32 pm
by hansford
the error tells you that you havent closed a open curly brace {
looking over the code I see 3 open braces and 2 of them are closed
remove the elseif(file_exists) {} segment and add a curly brace.

// 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]) { //this is never closed