upload af fil
HejJeg har følgende kode, der opdaterer et uploadet billede og sletter det gamle.
Mit problem er at det felt hvor man kan gennemser filer der skal oploades er tomt når man trykker rediger og jeg kan ikke bruge den tidligere sti til filen da det er forskelligt fra computer til computer.
Det jeg vil have den til er at lade den gamle fil (billede) være hvis der ikke er valgt noget nyt billede til upload.
Kode:
<?
if(!isset($_SESSION['admin'])) {
include("login/admincheck.php");
} else {
$tekst = $_REQUEST['tekst'];
$overskrift = $_REQUEST['overskrift'];
$submit = $_REQUEST['submit'];
$upfil = $_REQUEST['upfil'];
$selectall = mysql_query("SELECT * FROM forsidef") or die(mysql_error());
$row = mysql_fetch_assoc($selectall);
$filnavnu = $row['filnavn'];
$filnavnthumbu = $row['filnavnthumb'];
if(!isset($_FILES)) {
echo "";
} else {
if(isset($filnavnu)) {
unlink("$filnavnu");
unlink("$filnavnthumbu");
} else {
echo "";
}
///*** FIL START FIL START ***///
function replace_string($ind_str){
$soketter = array("æ","ø","å","Æ","Ø","Å"," ");
$byttil = array("ae","oe","aa","AE","OE","AA","_");
$tekst = str_replace($soketter,$byttil,$ind_str);
return $tekst;
}
function resize( $filename, $newfilename, $maxw, $maxh ){
$result = false;
$srcim = imagecreatefromjpeg( $filename );
$ow = imagesx( $srcim );
$oh = imagesy( $srcim );
$wscale = $maxw / $ow;
$hscale = $maxh / $oh;
$scale = ( $hscale < $wscale ? $hscale : $wscale );
$nw = round( $ow * $scale, 0 );
$nh = round( $oh * $scale, 0 );
$dstim = imagecreatetruecolor( $nw, $nh );
imagecopyresampled( $dstim, $srcim, 0, 0, 0, 0, $nw, $nh, $ow, $oh );
$result = imagejpeg( $dstim, $newfilename, 85 );
imagedestroy( $dstim );
imagedestroy( $srcim );
return $result;
}
if(isset($_POST['submit'])){
if($_FILES["upfil"]["size"] > 0) {
$konfiguration["upload_bibliotek"] = "./forsidet";
$konfiguration["max_stoerrelse"] = "10000";
/* Hvor flytter vi fra og til */
$fra = $_FILES["upfil"]["tmp_name"];
$til = $konfiguration["upload_bibliotek"] . "/" . replace_string($_FILES["upfil"]["name"]);
$til_t = $konfiguration["upload_bibliotek"] . "/thumb_" . replace_string($_FILES["upfil"]["name"]);
/* Check PHP-version */
list($major, $minor, $rev) = explode(".", phpversion());
if($major < 4){
die("Jeg kan kun arbejde med PHP 4.0.0 eller derover");
}
/* Skab de "moderne" arrays hvis vi arbejder med en aeldre PHP */
if($minor < 1){
$_FILES = $HTTP_POST_FILES;
$_POST = $HTTP_POST_VARS;
$_SERVER = $HTTP_SERVER_VARS;
}
/* Accepterer vi filens stoerrelse? */
$fil_stoerrelse = filesize($fra)/1024;
if($fil_stoerrelse > $konfiguration["max_stoerrelse"]){
die("Desværre - filen er for stor. Jeg accepterer kun " .
$konfiguration["max_stoerrelse"] . "kb, og din fil fylder " .
ceil($fil_stoerrelse, 1) . " kb");
}
if(function_exists("move_uploaded_file")) {
resize($fra, $til, 324, 216);
resize($fra, $til_t, 400, 260);
}
else {
copy($fra, $til);
}
}
$filnavn = $til;
$filnavnthumb = $til_t;
}
///*** FIL SLUT FIL SLUT ***///
}
$opdater_overskrift = mysql_query("UPDATE forsidef SET overskrift='$overskrift'") or die(mysql_error());
$opdater_forside = mysql_query("UPDATE forsidef SET tekst='$tekst'") or die(mysql_error());
if(!isset($_FILES)) {
echo "";
} else {
$opdater_filnavn = mysql_query("UPDATE forsidef SET filnavn='$filnavn'") or die(mysql_error());
$opdater_filnavnthumb = mysql_query("UPDATE forsidef SET filnavnthumb='$filnavnthumb'") or die(mysql_error());
}
header("location:index.php");
}
?>
Jeg har prøvet at få den til at lade være med at opdatere og slette den gamle fil hvis feltet ikke er udfyldt med if(!isset($_FILES)) men det virker tilsyneladense ikke.
