08. december 2005 - 16:50
Der er
21 kommentarer og 1 løsning
irriterende upload script
Hejsa Jeg fandt det her upload script i et andet spørgsmål her på exp. det virker også fint.. Men er der nogen der kan få det til at acceptere mp3, wav og wma filer også?? ############################################################### <html> <head> <link href="../css/main.css" rel="stylesheet" type="text/css"> </head> <body> <h3>Upload fil</h3> <?php if($_SESSION[login] == true){ /* Funktion der uploader en fil af tilladt filtype (MIME) med en maximal størrelse til et bibliotek */ /* Funktionen skal fodres med $_FILES['navn'] */ /* String upload_fil(Array fil [, Integer max_stoerrelse [, String bibliotek [, Array filtyper_tilladt]]]) */ function upload_fil($fil, $max_stoerrelse = 1000000, $bibliotek = 'default', $filtyper_tilladt = 'default') { if ($bibliotek == 'default') { $bibliotek = '/upload'; } if ($filtyper_tilladt == 'default') { $filtyper_tilladt = array('image/bmp', 'image/jpeg', 'image/pjpeg', 'image/tiff', 'image/png', 'image/gif', 'application/pdf', 'application/zip', 'application/arj', 'application/x-zip-compressed', 'application/octet-stream'); } if ($fil['size'] > 0) { $filnavn = strtolower(ereg_replace(' ', '_', $fil['name'])); $fil_sti = $bibliotek . '/' . $filnavn; $fra = $fil['tmp_name']; $fil_stoerrelse = filesize($fra)/1024; $filtype = $fil['type']; $fejl = 0; if (!in_array($filtype, $filtyper_tilladt)) { echo "<p>Filtypen '$filtype' er ikke tilladt. De tilladte filtyper er '" . implode("', '", $filtyper_tilladt) . "'. Filen '$filnavn' kan derfor ikke uploades!</p>"; $fejl = 1; } if ($fil_stoerrelse > $max_stoerrelse) { echo "<p>Filen '$filnavn' er for stor og kan ikke uploades. Den fylder " . ceil($fil_stoerrelse) . " kb og der kan maximalt uploades $max_stoerrelse kb!</p>"; $fejl = 1; } if ($fejl == 0) { if (file_exists($_SERVER['DOCUMENT_ROOT'] . $fil_sti)) { $pos = strrpos($filnavn, '.'); $foerpos = substr($filnavn, 0, $pos); $efterpos = substr($filnavn, $pos + 1, strlen($filnavn) - ($pos + 1)); $i = 2; echo "<p>Filen '$filnavn' eksisterer allerede i '$bibliotek' og filen omdøbes derfor til "; while (file_exists($_SERVER['DOCUMENT_ROOT'] . $fil_sti)) { $filnavn = $foerpos . '(' . $i . ').' . $efterpos; $fil_sti = $bibliotek . '/' . $filnavn; $i++; } echo "'$filnavn'</p>"; } $til = $_SERVER['DOCUMENT_ROOT'] . $fil_sti; if (move_uploaded_file($fra, $til)) { echo "<p>Filen '$filnavn' er uploadet!</p>"; return $fil_sti; } else { echo "<p>Desværre, filen '$filnavn' kunne ikke uploades!</p>"; return false; } } } else { echo '<p>Der er ikke vedhæftet nogen fil!</p>'; } } if (isset($_POST['send'])) { $userfile = $_FILES['userfile']; $bibliotek = $_POST['bibliotek']; upload_fil($userfile, 10000, $bibliotek); } else { ?> <form enctype="multipart/form-data" action="<?php $_SERVER['PHP_SELF']; ?>" method="post"> Vælg fil<br /> <input type="file" name="userfile"><br /> Vælg mappe:<br /> <select name="bibliotek"> <option value ="/tracks">Tracks</option> <option value ="/billeder">Billeder</option> <option value ="/beats">Beats</option> </select><br /> <input type="submit" name="send" value="Upload Fil"> </form> <?php } } else { echo "Du har ikke rettigheder til denne side"; } ?> </body> </html>
Annonceindlæg tema
Offentlig digitalisering
Fra effektivisering til digital suverænitet. Hvordan skaber det offentlige en digital fremtid med AI, sikkerhed og kontrol i centrum?
08. december 2005 - 16:51
#1
Du skal tilføje typerne her: $filtyper_tilladt = array('image/bmp', 'image/jpeg', 'image/pjpeg', 'image/tiff', 'image/png', 'image/gif', 'application/pdf', 'application/zip', 'application/arj', 'application/x-zip-compressed', 'application/octet-stream');
08. december 2005 - 16:54
#2
$filtyper_tilladt = array('image/bmp', 'image/jpeg', 'image/pjpeg', 'image/tiff', 'image/png', 'image/gif', 'application/pdf', 'application/zip', 'application/arj', 'application/x-zip-compressed', 'application/octet-stream','audio/mp3','audio/wav','audio/x-ms-wma');
08. december 2005 - 16:55
#3
08. december 2005 - 16:55
#4
mp3 = audio/x-mpeg
08. december 2005 - 17:02
#5
godt.. tjekker lige om det virker, og så vender jeg tilbage:)
08. december 2005 - 17:08
#6
den siger at der ikke er vedhætet nogen fil??
08. december 2005 - 17:26
#7
Hvor stor er filen du prøver at uploade? Der er pr. default en maxsize i php på 2MB Test med en lille fil på ca. 500kb
08. december 2005 - 17:34
#8
Denne er testet hos mig og virker: <html> <head> <link href="../css/main.css" rel="stylesheet" type="text/css"> </head> <body> <h3>Upload fil</h3> <?php /* Funktion der uploader en fil af tilladt filtype (MIME) med en maximal størrelse til et bibliotek */ /* Funktionen skal fodres med $_FILES['navn'] */ /* String upload_fil(Array fil [, Integer max_stoerrelse [, String bibliotek [, Array filtyper_tilladt]]]) */ function upload_fil($fil, $max_stoerrelse = 1000000, $bibliotek = 'default', $filtyper_tilladt = 'default') { if ($bibliotek == 'default') { $bibliotek = '/upload'; } if ($filtyper_tilladt == 'default') { $filtyper_tilladt = array('image/bmp', 'image/jpeg', 'audio/mpeg' ,'image/pjpeg', 'image/tiff', 'image/png', 'image/gif', 'application/pdf', 'application/zip', 'application/arj', 'application/x-zip-compressed', 'application/octet-stream'); } if ($fil['size'] > 0) { $filnavn = strtolower(ereg_replace(' ', '_', $fil['name'])); $fil_sti = $bibliotek . '/' . $filnavn; $fra = $fil['tmp_name']; $fil_stoerrelse = filesize($fra)/1024; $filtype = $fil['type']; $fejl = 0; if (!in_array($filtype, $filtyper_tilladt)) { echo "<p>Filtypen '$filtype' er ikke tilladt. De tilladte filtyper er '" . implode("', '", $filtyper_tilladt) . "'. Filen '$filnavn' kan derfor ikke uploades!</p>"; $fejl = 1; } if ($fil_stoerrelse > $max_stoerrelse) { echo "<p>Filen '$filnavn' er for stor og kan ikke uploades. Den fylder " . ceil($fil_stoerrelse) . " kb og der kan maximalt uploades $max_stoerrelse kb!</p>"; $fejl = 1; } if ($fejl == 0) { if (file_exists($_SERVER['DOCUMENT_ROOT'] . $fil_sti)) { $pos = strrpos($filnavn, '.'); $foerpos = substr($filnavn, 0, $pos); $efterpos = substr($filnavn, $pos + 1, strlen($filnavn) - ($pos + 1)); $i = 2; echo "<p>Filen '$filnavn' eksisterer allerede i '$bibliotek' og filen omdøbes derfor til "; while (file_exists($_SERVER['DOCUMENT_ROOT'] . $fil_sti)) { $filnavn = $foerpos . '(' . $i . ').' . $efterpos; $fil_sti = $bibliotek . '/' . $filnavn; $i++; } echo "'$filnavn'</p>"; } $til = $_SERVER['DOCUMENT_ROOT'] . $fil_sti; if (move_uploaded_file($fra, $til)) { echo "<p>Filen '$filnavn' er uploadet!</p>"; return $fil_sti; } else { echo "<p>Desværre, filen '$filnavn' kunne ikke uploades!</p>"; return false; } } } else { echo '<p>Der er ikke vedhæftet nogen fil!</p>'; } } if (isset($_POST['send'])) { $userfile = $_FILES['userfile']; $bibliotek = $_POST['bibliotek']; upload_fil($userfile, 10000, $bibliotek); } else { ?> <form enctype="multipart/form-data" action="<?php $_SERVER['PHP_SELF']; ?>" method="post"> Vælg fil<br /> <input type="file" name="userfile"><br /> Vælg mappe:<br /> <select name="bibliotek"> <option value ="/tracks">Tracks</option> <option value ="/billeder">Billeder</option> <option value ="/beats">Beats</option> </select><br /> <input type="submit" name="send" value="Upload Fil"> </form> <?php } ?> </body> </html>
08. december 2005 - 17:34
#9
den er på 7mb men jeg har ændret de 2 steder hvor man kan ændre fil størrelsen??
08. december 2005 - 17:43
#10
Hvor er de to steder? Prøv at skrive "phpinfo();" øverst i din kode. Så kan du se hvor meget serveren tillader at man uploader
08. december 2005 - 17:47
#11
hvad står det under?
08. december 2005 - 17:48
#12
Kig efter variablerne "post_max_size" og "upload_max_filesize". Det er dem der overordnet bestemmer hvor meget der kan uploades. Uanset hav der står i din phpkode...
08. december 2005 - 17:51
#13
hav = hvad Har du selv kontrol over serveren, eller har du et wobhotel hos b-one eller én af de andre? Hvis du selv har kontrol over serveren, kan du sætte variablernes værdier selv, i php´s ini. Ellers kan du prøve at lave en htaccess fil...
08. december 2005 - 17:52
#14
wobhotel = webhotel... Det går sgu godt her :)
08. december 2005 - 17:54
#15
post_max_size = 8M
upload_max_size = 2M
Det er der fejlen ligger;)
smider du et svar.. for der er vel ikke rigtigt noget at gøre ved det når jeg har hostet mit domæne hos
www.needhost.dk ?
08. december 2005 - 17:57
#16
Du kan lave en htacces fil der ændrer den enkelte phpvariabel.
Filen uploader du så til samme mappe som din phpfil ligger i.
Det er ikke sikker det virker, det kommer an på hvor meget
www.needhost.dk tillader
08. december 2005 - 18:03
#17
Lav en txt-fil og skriv i den: php_value post_max_size 128M php_value upload_max_size 128M gem den i samme bibliotek som din phpfil OBS: Filen skal hedde ".htacces" (punktum)htaccess, når den ligger på serveren
08. december 2005 - 18:03
#18
Et svar
08. december 2005 - 18:07
#19
godt det prøver jeg lige.. nu har jeg ellers lige skrevet en mail til hosteren og spurg og dispensation.. hehe
08. december 2005 - 18:12
#20
dit trick med .htacces virker ikke :( skal den ligge samme sted som php filerne eller i mapperne hvor filerne skal være`?
08. december 2005 - 18:15
#21
Tak for points :) Håber du får det løst... /Casualty
08. december 2005 - 18:15
#22
Sammen med phpfilen
Vi tilbyder markedets bedste kurser inden for webudvikling