04. oktober 2004 - 16:10
Der er
23 kommentarer og 1 løsning
Problemer med filupload?
Hej, Jeg har problemer med dette filupload-script! Filen skal ligge i mappen "images", og den kommer i en streng ved navn $fil fra en form. <? //------------------------------------------------------ // Kontrol af login-oplysninger //***************************** $res = mysql_query("SELECT id FROM login WHERE bruger='$user' AND password='$pass'"); if ((mysql_num_rows($res) == 1)) { //------------------------------------------------------ // Upload af baggrundsbillede //*************************** if($fil){ //Her skal filen flyttes fra $fra = $_FILES['fil']['tmp_name']; //Hvilken type fil arbejder vi med? $ext = strtolower(end(explode(".", $_FILES['fil']['name']))); //Hvis filen er et jpg, jpeg eller gif billede if($ext == "jpg" || $ext == "jpeg" || $ext == "gif"){ $tid = time(); //Her giver vi billedet et andet navn, så der ikke kommer to ens navne… $nytNavn = $tid . ”_” . rand(1, 1000000) . $ext; //Her er vores destination $til = "../images/grafik/menu/" . $nytNavn; //Her sker det magiske: move_uploaded_file($fra, $til); } } //------------------------------------------------------ // Redigering af farve //******************** if($send){ switch($farve){ case(1): $kode = "bgcolor=$specifik"; break; case(2): $kode = "background=images/grafik/menu/$filnavn_name"; break; default: $kode = "bgcolor=$farve"; break; } mysql_query(" UPDATE grafik SET menu='$kode' WHERE id = '1' ") or print mysql_error(); echo "<p align=center><img border=0 src=images/done.gif width=300 height=200></p>"; } else { //------------------------------------------------------ ?>
Annonceindlæg tema
Cloud & AI
I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
04. oktober 2004 - 16:19
#1
$user og $pass skal lige sættes til en værdi
04. oktober 2004 - 16:26
#2
Det er sessions, så det skulle ikke være noget problem
04. oktober 2004 - 16:35
#3
Hvad er problemet præcis? Findes denne mappe struktur "../images/grafik/menu/"?
04. oktober 2004 - 16:37
#4
Altså den melder ikke nogen fejl - og ja, mappestrukturen findes! Har og prøvet med andre mapper, men der sker intet..?
04. oktober 2004 - 16:40
#5
$fra = $_FILES['fil']['tmp_name']; er fil størrelsen og ikke navnet The size, in bytes, of the uploaded file. $_FILES['userfile']['tmp_name']
04. oktober 2004 - 16:42
#6
move_uploaded_file($_FILES['userfile']['tmp_name'], $til);
04. oktober 2004 - 16:42
#7
ups - ikke userfile, men fil hedder din move_uploaded_file($_FILES['fil']['tmp_name'], $til);
04. oktober 2004 - 16:45
#8
Der sker stadig ikke noget??!?!? Skal php.ini sættes op på en speciel måde ?
04. oktober 2004 - 16:48
#9
ja file_uploads boolean Whether or not to allow HTTP file uploads. See also the upload_max_filesize, upload_tmp_dir, and post_max_size directives.
04. oktober 2004 - 16:49
#10
hmm... alt er konfiguret korrekt! Jeg kører med PHP triad
04. oktober 2004 - 16:51
#11
prøv denne fra manualen og bemærk // In PHP versions earlier than 4.1.0, $HTTP_POST_FILES should be used instead <?php // In PHP versions earlier than 4.1.0, $HTTP_POST_FILES should be used instead // of $_FILES. $uploaddir = '/var/www/uploads/'; $uploadfile = $uploaddir . $_FILES['userfile']['name']; print "<pre>"; if (move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile)) { print "File is valid, and was successfully uploaded. "; print "Here's some more debugging info:\n"; print_r($_FILES); } else { print "Possible file upload attack! Here's some debugging info:\n"; print_r($_FILES); } print "</pre>"; ?>
04. oktober 2004 - 16:53
#12
prøv evt. også at lægge en echo $_FILES['fil']['tmp_name']; ind, før move, for at se om der overhovedet står noget i den.
04. oktober 2004 - 16:57
#13
sorry, jeg bøffede da jeg bildte dig ind at det var størrelsen (04/10-2004 16:40:37). Har lige nærlæst $_FILES['userfile']['tmp_name'] The temporary filename of the file in which the uploaded file was stored on the server. men svaret virker alligevel for jeg dummede mig 2 gange i samme svar :-)
04. oktober 2004 - 16:58
#14
Et muligt svar her The Variables defined for uploaded files differs depending on the PHP version and configuration. The autoglobal $_FILES exists as of PHP 4.1.0 The $HTTP_POST_FILES array has existed since PHP 4.0.0. These arrays will contain all your uploaded file information. Using $_FILES is preferred. If the PHP directive register_globals is on, related variable names will also exist. register_globals defaults to off as of PHP 4.2.0.
04. oktober 2004 - 17:00
#15
Når jeg sætter den til at udskrive $_FILES['fil']['tmp_name']; så skriver den intet, men når jeg sætter den til at udskrive $filnavn, så skriver den dette:C:\\Documents and Settings\\Kasper Nygaard\\Dokumenter\\Billeder\\Film\\a.jpg
04. oktober 2004 - 17:06
#16
Det kunne jo tyde på at du ikke har "register_globals on" efter det jeg skrev 16:58:27 Hvad hedder dit inputfelt i formen? jfr. din kode skal det hedde "fil", men hvor f* bliver $filnavn sat? Hvad står der i $fil ( if($fil){ )
04. oktober 2004 - 17:08
#17
kan jeg ikke prøve at sende filen til dig ?
04. oktober 2004 - 17:15
#18
Du kan også prøve med dette: <?php session_start(); function alert() { if(isset($_SESSION["besked"])) { echo" onload=\"alert('". htmlentities($_SESSION["besked"]) ."');\""; unset($_SESSION["besked"]); }else{ echo""; } } // ca. Kb må billedet fylde $kb = 30; // min. bredde og højde (minimum???) $minw = 100; $minh = 60; // Det dir som der skal uploades til, med skråstreger $galleridir = "/images/"; // Fuld sti til galleridir $moveto = $_SERVER["DOCUMENT_ROOT"] . $galleridir; // Hvor sendes man hen efter upload? $redir = $_SERVER["PHP_SELF"]; if (isset($_FILES["upfile"])) { // Array med fejlbeskeder sat med $_FILES["upfile"]["error"] $arg = array(1 => "Filen er større end tilladt upload i php.ini", 2 => "Filen er større end ". round(($kb*1024)/1000) ." Kb", 3 => "Sorry, men kun en del af filen blev uploadet", 4 => "Vælg en fil til upload!"); // Array med filtyper, til brug for det endelige filnavn $filetypes = array(1 => "gif", 2 => "jpg", 3 => "png"); if($_FILES["upfile"]["error"] > 0) { $_SESSION["besked"] = strtr($_FILES["upfile"]["error"], $arg); header("Location:". $redir .""); exit(); } if($_FILES["upfile"]["size"] > ($kb*1024)) { $_SESSION["besked"] = "Filen er for stor til upload!!!"; header("Location:". $redir .""); exit(); } if(false == ($str = getimagesize($_FILES["upfile"]["tmp_name"]))) { $_SESSION["besked"] = "Valgte fil til upload er ikke en billedfil!!!"; header("Location:". $redir .""); exit(); } if($str[2] > 3) { $_SESSION["besked"] = "Kun gif, jpg og png filer kan uploades!!!"; header("Location:". $redir .""); exit(); } if($str[0] < $minw) { $_SESSION["besked"] = "Billedet er under ". $minw ." px. i bredden!"; header("Location:". $redir .""); exit(); } if($str[1] < $minh) { $_SESSION["besked"] = "Billedet er under ". $minh ." px. i højden!"; header("Location:". $redir .""); exit(); } // FILNAVN UDEN FILTYPE $newname = time() ."_". rand(1000, 9999); // FILTYPEN $filtypen = strtr($str[2], $filetypes); $upname = $newname .".". $filtypen; if(move_uploaded_file($_FILES["upfile"]["tmp_name"], $moveto . $upname)) { $_SESSION["besked"] = "Billedet er blevet uploadet!"; }else{ $_SESSION["besked"] = "Billedet kunne desværre ikke flyttes!"; } header("Location:". $redir .""); exit(); } ?> <html><head><title>Billede upload</title> </head> <body<?php alert(); ?>> <?php if(!is_dir($moveto)) { echo"Dir som fil skal flyttes til eksisterer ikke!!!"; }else{ ?> <form action="<?php echo $_SERVER["PHP_SELF"]; ?>" method="post" enctype="multipart/form-data"> <input type="hidden" name="MAX_FILE_SIZE" value="<?php echo($kb*1024); ?>"> <input name="upfile" type="file" size="32"><br> <input type="submit" value="Upload"> </form> <?php } ?> </body></html>
04. oktober 2004 - 17:19
#19
jo send til bojo at tulstrup dot net ( oversæt at og dot )
04. oktober 2004 - 17:24
#20
Filen er sendt...
04. oktober 2004 - 18:18
#21
Ret din action så der står <form method="post" action="<? echo $PHP_SELF; ?>">
04. oktober 2004 - 20:59
#22
tak, det virkede... Laver du et svar?
04. oktober 2004 - 21:00
#23
Fint :-)
04. oktober 2004 - 21:00
#24
ups
Vi tilbyder markedets bedste kurser inden for webudvikling