Click to See Complete Forum and Search --> : Renaming file on upload if exists


makesnocents
07-23-2005, 04:17 AM
I bought this program which works fine as it is right now. The only problem is the scri[pt will automatically over write existing files without renaming it to something else. So what I need is for someone to help me have this script rename a image file on upload if it exists already. And also to make sure the sql part inserts new renamed code. I'm only a beginner and I've tried all the rename & str_replace codes but I keep getting error. Please help

Here is original code:
<?
include("include/common.php");

if(!$loggedin){
ob_start();
header("Location: login.php");
}
include("include/header.php");
include("include/accmenu.php");

if($submit){
if($_POST['delimg']){
mysql_query("UPDATE bio SET imagefile='' WHERE user='$myuid'");
if(file_exists("./uploads/".$_POST['delimg']))@unlink("./uploads/".$_POST['delimg']);
}

if($oid){
$sql = "UPDATE bio SET aboutme='$caboutme',contact='$ccontact'";
if( $_FILES['image']['name'] ){
$sql .= ",imagefile='".$_FILES['image']['name']."'";
}
$sql .= " WHERE user='$myuid'";

}else{
$sql = "INSERT INTO bio SET aboutme='$caboutme',contact='$ccontact',user='$myuid'";
if( $_FILES['image']['name'] ){
$sql .= ",imagefile='".$_FILES['image']['name']."'";
}
}
mysql_query($sql) or die( mysql_error()."<br>$sql<bR>" );
if(!$oid){
$oid = mysql_insert_id();
}
if( $_FILES['image']['name'] ){
if($_POST['oldimg'])unlink("./uploads/".$_POST['oldimg']);
$match=0;
$sent=move_uploaded_file($_FILES['image']['tmp_name'], "./uploads/".$_FILES['image']['name']);
if(!$sent){
echo ("<script>window.alert('File upload has failed.');</script>");
}else{
echo ("<script>window.alert('File upload of file type $type was sucessfull');</script>");
}
}
?>
<h3>Edit your Bio</h3>
<form method=post ENCTYPE="multipart/form-data">
<?=$table2?>
<tr align=center>
<td colspan=2>Your Bio has been saved.</td>
</tr>
<?
echo "</table>";
}else{
$this->c=mysql_query("select * from bio where user='$myuid'");
$this->d=mysql_fetch_object($this->c);
if(is_object($this->d)) {
$cid = $this->d->id;
$caboutme = $this->d->aboutme;
$ccontact = $this->d->contact;
$imagefile = $this->d->imagefile;
}
?>
<h3>Edit your Bio</h3>
<form method=post ENCTYPE="multipart/form-data">
<? if($cid)echo "<input type='hidden' name='oid' value='$cid'"; ?>
<?=$table2?>
<tr>

<td colspan=2>
<table width="500" border="0" cellspacing="0" cellpadding="2">
<tr>
<td colspan="2">Edit your Bio and then click the submit button below.
</td>
</tr>
<tr>
<td width="322">About me:</td>
<td width="170"><textarea name=caboutme cols=50 rows=10><?=$caboutme?></textarea></td>
</tr>
<tr>
<td>My Image:</td>
<td><input name="image" type="file">
<?
if($imagefile){
echo "&nbsp;
<input type=hidden name=oldimg value='$imagefile'>
<input type=checkbox class=checkbox name=delimg value='$imagefile'>
Delete image (<a href='$siteurl/uploads/$imagefile","' target=_blank>See current</a>)";
}
?>
</td>
</tr>
<tr>
<td>&nbsp;</td>
<td><input type=submit name=submit value='Submit Changes'></td>
</tr>
<tr>
<td>&nbsp;</td>
<td>&nbsp;</td>
</tr>
</table>

</form>
<?
}
include("include/footer.php");
?>

makesnocents
07-23-2005, 07:31 AM
OK ..so I fgured out how to get the file renamed by changing
$sent=move_uploaded_file($_FILES['image']['tmp_name'], "./uploads/".$_FILES['image']['name']);
to
$new_file = substr(sha1(rand(10, time())), 0, 8) . '.' . jpg;
$sent=move_uploaded_file($_FILES['image']['tmp_name'], "./uploads/".$new_file);
...But I'm still having problems on getting that renamed file to be inserted into SQL table

Help please!!!!!!!!