Med viss osäkerhet om hur $_FILES beter sig...
Testa att byta ut
if(isset($_FILES['userfile']))
mot
if(!empty($_FILES['userfile']))
5 svar · 494 visningar · startad av Guldstrand
Ber om ursäkt för en dålig "rubrik". :r
Nu till mitt lilla problem...
Jag FÖRSÖKER att använda följande kod för att skapa och spara en bild i två olika storlekar.
///// SKAPA OCH SPARA BILD
require("inc/create_thumb.php");
if(isset($_FILES['userfile']))
{
$userfile_name = str_replace(" ","_",$_FILES['userfile']['name']);
$userfile_tmp = str_replace(" ","_",$_FILES['userfile']['tmp_name']);
$userfile_size = $_FILES['userfile']['size'];
$userfile_type = $_FILES['userfile']['type'];
$userfile_thumb_name = str_replace(" ","_",$_FILES['userfile']['name']);
$userfile_thumb_tmp = str_replace(" ","_",$_FILES['userfile']['tmp_name']);
// mappen där filerna ska hamna
$thumb_upload_dir = 'images/personer/miniatyr/';
$thumb_upload_dir2 = 'images/personer/';
// de tillåtna fil-typerna
$filetypes = 'jpg,jpeg,png';
// den största tillåtna storleken ( 1000 kB )
$maxsize = (1024*20000);
// kolla storleken på filen
if($_FILES['userfile']['size'] > $maxsize)
die("Tillåten filstorleken är '.round($maxsize / 1024).' kB.<br />");
// hämta filtypen
$types = explode(',',$filetypes);
$file = explode('.',$_FILES['userfile']['name']);
$extension = $file[sizeof($file)-1];
// kolla filtypen
if(!in_array($extension,$types))
die("Endast $filetypes är tillåtet att laddas upp.<br />");
$insandare1 = minhemsida."_";
if (file_exists($thumb_upload_dir.$insandare1.str_replace(" ","_",$_FILES['userfile']['name'])))
die("En bild med samma namn finns redan.<br />");
// Gör första tumnageln
thumb_pic(str_replace(" ","_",$_FILES['userfile']['tmp_name']), $thumb_upload_dir.$insandare1.str_replace(" ","_",$_FILES['userfile']['name']), 120, 200);
// Gör andra tumnageln
thumb_pic(str_replace(" ","_",$_FILES['userfile']['tmp_name']), $thumb_upload_dir2.$insandare1.str_replace(" ","_",$_FILES['userfile']['name']), 600, 400);
}
/////
Koden i sig, fungerar som den ska, men jag vill endast att koden skall köras OM man väljer all ladda upp en bild, inte annars. *hmm.. kändes lite luddigt detdär*
Alltså... jag har ett formulär där man kan fylla i lite info om sig själv, namn, ålder m.m.
Men som det är nu (med koden ovan), så MÅSTE man även ange en bild.
(Vill att detta skall vara frivilligt.)
Hur löser jag det?
Som det är nu, så får jag bara "Endast jpg,jpeg,png är tillåtet att laddas upp.", fast att jag INTE väljer att ladda upp någon bild.
Med viss osäkerhet om hur $_FILES beter sig...
Testa att byta ut
if(isset($_FILES['userfile']))
mot
if(!empty($_FILES['userfile']))
fiddler skrev:
Med viss osäkerhet om hur $_FILES beter sig...
Testa att byta ut
if(isset($_FILES['userfile']))mot
if(!empty($_FILES['userfile']))
Tack för ditt svar, men det hjälpte tyvärr inte. :(
EDIT: Testade även att byta till "if(isset($_POST['userfile']))", men då laddas inte bilden upp. :x
if($_FILES['userfile']['size'] > 0)
...
SPiN skrev:
if($_FILES['userfile']['size'] > 0) ...
YEEEEEEEES... det verkade fungera.
Är detta ett bra sätt att göra det på? :q
Ja, det tycker jag. Du borde kunna se om någon fil är uppladdad med is_uploaded_file() också;
if(is_uploaded_file($_FILES['userfile']['tmp_name']))
...
Om du tycker det känns bättre.