16. april 2004 - 11:17
Der er
5 kommentarer og
1 løsning
Upload Excel-fil til server
Hej eksperter...
Jeg har en side hvor jeg gerne vil upload excel-filer, men den vil ikke... jeg bruger "application/msexcel"...
Hvad går der galt?
$filer_tilladt = array("image/pjpeg", "image/jpeg", "image/gif", "image/jpg", "application/msword", "application/msexcel");
Alle de andre filtyper kan godt uploades...
Slettet bruger
16. april 2004 - 14:34
#2
Det er ikke nemt at sige, hvad der er galt, når du ikke fortæller, hvad der sker. "Den vil ikke" er ikke nok til at fejlsøge ud fra.
16. april 2004 - 14:50
#3
Hej Sandbox.
Nej det er rigtigt, så du får lige lidt mere info.
Med nedenstående kode kan jeg godt uploade jpg, gif og doc filer, men ikke xls.
Kode:
if ($fejl==false)
{
$fil = $_FILES["billede"];
if ($fil["name"] != "")
{
function upload_fil($fil, $staevnetitel, $datomånedår, $max_stoerrelse = 250, $bibliotek = "default", $filtyper_tilladt = "default")
{
$filnavn = strtolower(ereg_replace(" ", "_", $fil["name"]));
$fra = $fil["tmp_name"];
$fil_stoerrelse = filesize($fra)/1024;
$filtype = $fil["type"];
$fejl = "0";
if(!in_array($filtype, $filtyper_tilladt))
{
print "<font face='Verdana' color='red' size='1'>Den valgte filtype er ikke tilladt. Det er kun tilladt at benytte xls-filer.<br></font>";
$fejl = "1";
}
if ($fil_stoerrelse > $max_stoerrelse)
{
print "<font face='Verdana' color='red' size='1'>Filen er for stor. Den fylder " . ceil($fil_stoerrelse) . " kb og må maximalt fylde $max_stoerrelse kb!<br></font>";
$fejl = "1";
}
if ($fejl == "0")
{
$timestamp = time();
$loopInt = strlen($filnavn) - 1;
$typeStreng = "";
$punktumFundet = false;
while ($loopInt >= 0 && $punktumFundet == false)
{
if (substr($filnavn, $loopInt, 1) == ".")
{
$punktumFundet = true;
$typeStreng = substr($filnavn, $loopInt, strlen($filnavn) - $loopInt);
}
$loopInt--;
}
$fil_sti = $bibliotek . "/" . $timestamp . $typeStreng;
$til = $_SERVER["DOCUMENT_ROOT"] . $fil_sti;
if (move_uploaded_file($fra, $til))
{
$connection = mysql_connect("--**--","--**--","--**--");
$db = "--**--";
mysql_select_db($db);
mysql_query("INSERT INTO resultater (id, staevnetitel, dato, fil) VALUES (".time().", '".$_POST["staevnetitel"]."', '".$_POST["datomånedår"]."', '$fil_sti')");
print "Uploadet...";
}
exit;
}
}
$fil = $_FILES["billede"];
$max_stoerrelse = 250;
$upload_mappe = "/xls";
$filer_tilladt = array("image/pjpeg", "image/jpeg", "image/gif", "image/jpg", "application/msword", "application/msexcel");
upload_fil($fil, $staevnetitel, $datomånedår, $max_stoerrelse, $upload_mappe, $filer_tilladt);
}
else
{
print "Lort";
}
}
Slettet bruger
16. april 2004 - 15:10
#4
OK, så mangler jeg bare at få at vide, hvilken fejlbesked du får, eller hvad der ellers sker, når du forsøger.
Prøv eventuelt at rette denne linie:
print "<font face='Verdana' color='red' size='1'>Den valgte filtype er ikke tilladt. Det er kun tilladt at benytte xls-filer.<br></font>";
Til:
print "<font face='Verdana' color='red' size='1'>Den valgte filtype ({$filtype}) er ikke tilladt. Det er kun tilladt at benytte xls-filer.<br></font>";
Hvis nu browseren ikke har helt samme ide om hvad type filen skal kaldes. (Måske den bruger application/octet-stream, som bare betyder, at den ikke aner hvad det er for noget.)