Omdøb ens filnavne
Hej,jeg har et upload script er virker fint. Desværre overskriver det filerne, hvis de har ens filnavne. Jeg har prøvet at få det til at ændre filnavnet til et andet, hvis det allerede findes. Det virker desværre ikke.
På forhånd tak!
Kode:
<?php
$upload_dir = "../xxxupload/".$_GET[mappe];
$max_size = 1500000;
$createsubfolders = "true";
/*error_reporting(0);*/
$message ="";
if (!is_dir($upload_dir))
{
if (!recursiveMkdir($upload_dir)) die ("cannot access upload directory");
if (!chmod($upload_dir,0755)) die ("change permission to 755 failed.");
}
if ($_POST['todo']=="upload")
{
$target_folder=$upload_dir;
// relalivefilename support for folders and subfolders creation.
$relative = $_POST['relativefilename'];
if (($createsubfolders == "true") && ($relative != ""))
{
$file_name = $_FILES['uploadfile']['name'];
$inda=strlen($relative);
$indb=strlen($file_name);
if ($inda > $indb)
{
$subfolder = substr($relative,0,($inda-$indb)-1);
$subfolder = str_replace("\\","/",$subfolder);
$target_folder = $upload_dir."/".$subfolder;
recursiveMkdir($target_folder);
}
}
if ($_FILES['uploadfile'])
{
$message = do_upload($target_folder,$max_size);
// Recompose file from chunks (if any).
$chunkid = $_POST['chunkid'];
$chunkamount = $_POST['chunkamount'];
$chunkbaseStr = $_POST['chunkbase'];
if (($chunkid != "") && ($chunkamount != "") && ($chunkbaseStr != ""))
{
if ($chunkid == $chunkamount)
{
// recompose file.
$fname = $target_folder."/".$chunkbaseStr;
if (file_exists($fname)) $fname = $fname.".".time();
$fout = fopen ($fname, "wb");
for ($c=1;$c<=$chunkamount;$c++)
{
$filein = $target_folder."/".$chunkbaseStr.".".$c;
$fin = fopen ($filein, "rb");
while (!feof($fin))
{
$read = fread($fin,4096);
fwrite($fout,$read);
}
fclose($fin);
unlink($filein);
}
fclose($fout);
}
}
}
else $message = "No uploaded file(s).";
}
function do_upload($upload_dir,$max_size)
{
$temp_name = $_FILES['uploadfile']['tmp_name'];
$file_name = $_FILES['uploadfile']['name'];
$file_size = $_FILES['uploadfile']['size'];
$file_type = $_FILES['uploadfile']['type'];
$file_name = str_replace("\\","/",$file_name);
$file_name = str_replace("'","",$file_name);
$file_path = $upload_dir."/".$file_name;
// Check filename.
if ($file_name =="")
{
$message = "Error - Invalid filename";
return $message;
}
// Check file size.
if ($file_size > $max_size)
{
$errormsg = "- File size is over ".$max_size." bytes";
header("HTTP/1.1 405");
header("custommessage: ".$errormsg);
$message = "Error ".$errormsg;
return $message;
}
$result = move_uploaded_file($temp_name, $file_path);
if ($result)
{
chmod($file_path,0755);
$message = "$file_name uploaded successfully.";
return $message;
}
else
{
$errormsg = "- PHP upload failed";
header("HTTP/1.1 405");
header("custommessage: ".$errormsg);
$message = "Error ".$errormsg;
return $message;
}
}
function recursiveMkdir($path)
{
if (!file_exists($path))
{
recursiveMkdir(dirname($path));
return mkdir($path, 0755);
}
else return true;
}
?>
