"Upload billede" problem
Jeg har nærstuderet alle artiklerne i php angående billedupload, men jeg støder ind i et irriterende problem:Den vil for det første ikke uploade billedet. eller overføre information fra $_FILES til andre variabler
Som I kan se har jeg prøvet at se hvor fejlen opstår og se om jeg kan rette det den vej, men det funker ikke helt som det skal. Det output jeg får når jeg uploader et tilfældigt billede ser sådanher ud:
tmp_name:/usr/tmp/phpoSTcZa
name:paysages_fantas_37.jpg
type:image/pjpeg
size:84974
error:0
(tom)
bannerfil:
filendelse:
filtyper:
bannersti:
brugerid:243
Warning: chmod(): No such file or directory in /mnt/dkcphnas004/www/t/y/xxxxxxxxxx.dk/PHP/Diverse.php on line 152
Desuden så mangler jeg et script som kan resize billederne hvis de er over 468 x 60 px. Jeg har læst diverse guider igennem, uden held. Hver gang sidder jeg bagefter og tænker "okay... WHAT?!" hvis der er nogen som ville være så hjælpsom og skrive et script (helst kommenteret så jeg har en chance for at lære det på en eller anden måde) eller på anden måde hjælpe mig vil jeg sætte pris på det.
Her er hele koden som håndterer uploadningen:
//Upload banner
elseif(isset($_POST[UploadBanner])){
$_SESSION[Banner][URL] = $_POST[URL];
$_SESSION[Banner][Titel] = $_POST[Titel];
$_SESSION[Banner][Beskrivelse] = $_POST[Beskrivelse];
if(empty($_POST[URL]))
$fejl[] = 'Du skal angive en adresse til din side';
if(empty($_POST[Titel]))
$fejl[] = 'Du skal give din side et navn';
if(empty($_POST[Beskrivelse]))
$fejl[] = 'Du har ikke skrevet en beskrivelse om siden';
elseif(strlen($_POST[Beskrivelse]) < 100)
$fejl[] = 'Din beskrivelse skal være på mindst 100 tegn';
$MaksHoejde = 60;
$MaksBredde = 468;
function UploadBanner1(){
$BannerFil=$_FILES[BannerLink][tmp_name];
$FilEndelse=strrchr($_FILES[BannerLink][name],'.');
$FilEndelse=strtolower($FilEndelse);
$FilTyper=array('.gif','.jpg','.png');
$BannerSti='../Billeder/Banner/Banner_'.$_SESSION[Profil][BrugerID].$FilEndelse;
if(in_array($FilEndelse,$FilTyper)){
function UploadBanner2(){
$MaksHoejde = 60;
$MaksBredde = 468;
$Visninger = 500;
/*resize her hvis det er for stort*/
move_uploaded_file($BannerFil, $BannerSti);
echo '
tmp_name:<b>'.$_FILES[BannerLink][tmp_name].'</b><br>
name:<b>'.$_FILES[BannerLink][name].'</b><br>
type:<b>'.$_FILES[BannerLink][type].'</b><br>
size:<b>'.$_FILES[BannerLink][size].'</b><br>
error:<b>'.$_FILES[BannerLink][error].'</b><br>(tom)<br>';
echo '
bannerfil:<b>'.$BannerFil.'</b><br>
filendelse:<b>'.$FilEndelse.'</b><br>
filtyper:<b>'.$FilTyper.'</b><br>
bannersti:<b>'.$BannerSti.'</b><br>
brugerid:<b>'.$_SESSION[Profil][BrugerID].'</b>';
chmod($BannerSti, 0644);
$iBanner = '
INSERT INTO
`Bannere_Data`
(`BrugerID`,
`Visninger`,
`Titel`,
`URL` ,
`Beskrivelse`)
VALUES(
'.$_SESSION[Profil][BrugerID].',
'.$Visninger.',
'.$_SESSION[Banner][Titel].',
'.$_SESSION[Banner][URL].',
'.$_SESSION[Banner][Beskrivelse].')';
unset($_SESSION[Banner]);
?>
<!--<script>
location.href='../Sider/Side.php?SideID=8';
</script>-->
<?php
}
}else
$fejl[] = 'De tilladte filtyper er GIF, JPG og PNG';
if(count($fejl) > 0)
Diverse_Fejl($fejl);
else
UploadBanner2();
}
if(count($fejl) > 0)
Diverse_Fejl($fejl);
else
UploadBanner1();
}
Her er formen som sparker det hele afsted:
<form id="BannerOrdning" action="../PHP/Diverse.php" method="post" name="BannerOrdning" enctype="multipart/form-data">
<p><b>B</b>anner:<br>
<b><input type="file" name="BannerLink" size="64" tabindex="1" accesskey="B"></b></p>
<p><b>A</b>dresse/URL til siden:<br>
<input type="text" name="URL" value="<?php echo $_SESSION['Banner']['URL']; ?>" size="82" tabindex="2" accesskey="A"></p>
<p><b>N</b>avn på siden:<br>
<input type="text" name="Titel" value="<?php echo $_SESSION['Banner']['Titel']; ?>" size="82" tabindex="3" accesskey="N"></p>
<p>B<b>e</b>skrivelse af siden:<br>
<textarea name="Beskrivelse" rows="10" cols="80" tabindex="4" accesskey="E"><?php echo $_SESSION['Banner']['Beskrivelse']; ?></textarea><br>
<span class="smalltext">Min 100; tegn endnu: <span id="signatureLeft">100</span></span>
<script language="JavaScript" type="text/javascript"><!--
function tick()
{
if (typeof(document.BannerOrdning) != "undefined")
calcCharLeft();
setTimeout("tick()", 1000);
}
function calcCharLeft()
{
var minLength = 100;
var oldSignature = "", currentSignature = document.BannerOrdning.Beskrivelse.value;
if (!document.getElementById("signatureLeft"))
return;
if (oldSignature != currentSignature)
{
oldSignature = currentSignature;
if (currentSignature.replace(/\r/, "").length < minLength)
document.BannerOrdning.Beskrivelse.value = currentSignature.replace(/\r/, "").substring(0, minLength);
currentSignature = document.BannerOrdning.Beskrivelse.value.replace(/\r/, "");
}
setInnerHTML(document.getElementById("signatureLeft"), minLength - currentSignature.length);
}
setTimeout("tick()", 1000);
//
//-->
</script>
</p>
<input type="submit" name="UploadBanner" value="Upload Banner" tabindex="5" accesskey="S"><br>
<div class="Genvej">
[Alt] + [S]</div>
</form>
