til frétta kerfi og gestabók og svaka fínerí. Það
væri ekki verra ef það væri hægt að uploada
myndum með þessu öllu saman, er það?
Ég var einmitt að vesenast í morgun við að gera function
sem uploadar myndum. Ég ákvað að reyna að bjarga kannski
nokkrum frá því að eyða tíma í þessa
vitleysu þannig ég ákvað bara að pósta þessu
vel commentuðu hérna á huga. Vonandi hjálpar þetta
einhverjum, og muniði að líklegasta ástæðan
fyrir að þetta virki ekki er að það séu ekki
skrifréttindi á möppunni sem þið eruð að
reyna að uploada í.</p>
<p>1. upload.php - skráin með forminu.</p>
<p><?
if(!isset($userfile))
{
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html>
<head>
<title>Senda skrá á server</title>
</head>
<body>
<form enctype="multipart/form-data" action="<? echo $PHP_SELF; ?>" method="post">
<input type="hidden" name="MAX_FILE_SIZE" value="1000000000" />
Skrá: <input name="userfile" type="file" />
<input type="submit" value="Senda" />
</form>
</body>
</html>
<?
}
else
{
include("funcupload.php");
$maxHeight = "300"; //Hvað má myndin vera há?
$maxWidth = "300"; //Hvað má myndin vera breið?
$picName = "nws"; //Hvað á myndin að heita, ég púsla því saman úr hvar ég nota þetta og svo Idið sem er í grunninum :)
$picID = "69"; //Hér ætti í rauninni að vera einhver breyta, t.d Idið sem er verið að setja í grunnin.
//Userfile er tmp staðsetningin á myndinni og userfile_type er hvaða tegund af skrá þetta er.
$success = picUpload($userfile, $maxHeight, $maxWidth, $picName, $picID, $userfile_type);</p>
<p> //Ef þetta er array, þá er villa :)
if (is_array($success))
{
foreach($success as $key => $value)
{
echo $value."<br>";
}
}
}</p>
<p> </p>
<p>2. funcupload.php - functionið sjálft sem uploadar myndinni.</p>
<p><?</p>
<p>function picUpload($userfile, $maxHeight, $maxWidth, $picName, $picID, $picType)
{
//Skilar slóðinni að rótarmöppunni, t.d /home/notendanafn/www/
global $DOCUMENT_ROOT;</p>
<p> //Athugar hvort einhverju hefur verið uploadað. Ef ekki,
þá hættir hún.
if ($userfile == "none")
{
return false;
}
else
{
//GetImageSize skilar arrayi með hæð og breidd myndarinnar. Td. er $size[3] = "width=(breidd myndarinnar) height=(hæð myndarinnar)" þetta er gott þegar maður er að sækja
myndheiti úr gagnagrunni.
$size = GetImageSize ("$userfile");</p>
<p> //Ef myndin er og há eða breið skilar hún villu.
if(($size[0] > $maxWidth) || ($size[1] > $maxHeight))
{
$error[] = "Myndin má ekki vera stærri en ".$maxWidth."x".$maxHeight.". (Hún er ".$size[0]."x".$size[1].")";
return $error;
}
else
{
//Finnur hvaða ending á að vera á skjalinu, hægt að bætia við og breyta ef maður vill aðrar endingar.
switch($picType)
{
case "image/x-png":
$type = ".png";
break;
case "image/gif":
$type = ".gif";
break;
case "image/pjpeg":
$type = ".jpg";
break;
}
//Ef endingin er ekki skilgreind er skráin ekki leyfileg og forritið hættir að keyra.
if(!isset($type))
{
$error[] = "Ekki leyfileg tegund af skrá";
return $error;
}
else
{
//Ef hún kemst hingað er allt í lagi og myndin ætti að fara á sinn stað :)
// Muna að breyta foldernum til þess að uploada myndinni í
if(exec("cp $userfile $DOCUMENT_ROOT/folerinn til uploada myndinni í/$picName$picID$type"))
{
return true;
}
else
{
return false;
}
}
}
}
}</p>
<p>******************************************************************************************</p>
<p>Ef ykkur dettur í hug einhver leið til þess að betrum
bæta þetta, eða rekist á einhverjar villur, endilega
látið mig vita :)</p
*————————-*