Avatar billede prop46 Nybegynder
22. marts 2007 - 13:56 Der er 11 kommentarer og
1 løsning

Kan dette uploadscript ændres?

Jeg bruger nedestående script til at uploade billeder og det virker fint for mig. Mit spørgsmål er om dette script kan ændres så det isteder for at modtage billeder modtager filer (ex. pdf, txt og doc)

<html>
<form action="?side=presse&presse=<?php echo $presse; ?>" method="post" enctype="multipart/form-data" style="display:inline">
<span class="p2">Upload nyt billede:<br /></span>
<input type="hidden" name="id" value="<?php echo $id; ?>">
<input type="hidden" name="overskrift" value="<?php echo $overskrift; ?>">
<input type="file" name="billed" size="28" class="input2">
<input type="submit" value="Upload" style="cursor: hand; cursor: pointer;" class="input1">
</form>
</html>

<?php
if(isset($_FILES["billed"])) {
$id = $_POST['id'];
$overskrift = $_POST['overskrift'];
$newname = strtolower(str_replace(" ", "_", $overskrift));
$dist = "../presse/image/";
$name = $_FILES["billed"]["name"];
$size = $_FILES["billed"]["size"];
$type = $_FILES["billed"]["type"];
$newname = $newname.".jpg";

$filetyper = array("image/jpeg", "image/pjpeg", "image/gif");

if ($_FILES["billed"]["name"] == "") {
$arrErrors3[] = "<span class=\"pfejl\">! Ingen fil valgt!</span>";
}elseif ($_FILES["billed"]["size"] < "30000") {
if (!in_array($_FILES["billed"]["type"], $filetyper)) {
$arrErrors3[] = "<span class=\"pfejl\">! ". $type ." er ikke tilladt for upload!</span>";
}elseif(is_uploaded_file($_FILES["billed"]["tmp_name"])) {

move_uploaded_file($_FILES["billed"]["tmp_name"], $dist . $newname);

$rediger_billed = "UPDATE presse SET billed='$newname' WHERE id = '$id'";
aabn_forbindelse_og_vaelgdb();
mysql_query($rediger_billed);
luk_forbindelse();

}else{
$arrErrors3[] = "<span class=\"pfejl\">! Sorry, men upload skete IKKE!</span>";
}
}else {
$arrErrors3[] = "<span class=\"pfejl\">! Filen er for stor! Den må max være 30 kb!</span>";
}
}
?>
Avatar billede coderdk Praktikant
22. marts 2007 - 14:11 #1
Du skal vel bare tilføje de korrekte mime-types til $filetyper = array("image/jpeg", "image/pjpeg", "image/gif");

I.e. application/pdf osv
Avatar billede prop46 Nybegynder
22. marts 2007 - 14:39 #2
Synes jeg nu ikke fungerer.....

<html>
<tr>
<td>
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td style="padding-top:20px;" align="left" valign="middle" class="p2">
<form action="?side=presse&presse=<?php echo $presse; ?>" method="post" enctype="multipart/form-data" style="display:inline">
<span class="p2">Upload nyt dokument:<br /></span>
<input type="hidden" name="id" value="<?php echo $id; ?>">
<input type="hidden" name="overskrift" value="<?php echo $overskrift; ?>">
<input type="file" name="dokument" size="28" class="input2">
<input type="submit" value="Upload" style="cursor: hand; cursor: pointer;" class="input1">
</form>
<?php
if (isset($arrErrors2)) {
    foreach ($arrErrors2 as $strError2) {
        echo "<br /><br />".$strError2."<br />";
    }
}
?>
</td>
</tr>
</table>
</td>
</tr>

<?php
if(isset($_FILES["dokument"])) {
$id = $_POST['id'];
$overskrift = $_POST['overskrift'];
$newname = strtolower(str_replace(" ", "_", $overskrift));
$dist = "../presse/";
$name = $_FILES["dokument"]["name"];
$size = $_FILES["dokument"]["size"];
$type = $_FILES["dokument"]["type"];
$newname = $newname.".$type";

$filetyper = array("application/pdf", "application/doc");

if ($_FILES["dokument"]["name"] == "") {
$arrErrors2[] = "<span class=\"pfejl\">! Ingen fil valgt!</span>";
}elseif ($_FILES["dokument"]["size"] < "1000000") {
if (!in_array($_FILES["dokument"]["type"], $filetyper)) {
$arrErrors2[] = "<span class=\"pfejl\">! ". $type ." er ikke tilladt for upload!</span>";
}elseif(is_uploaded_file($_FILES["dokument"]["tmp_name"])) {

move_uploaded_file($_FILES["dokument"]["tmp_name"], $dist . $newname);

$rediger_dokument = "UPDATE presse SET dokument='$newname' WHERE id = '$id'";
aabn_forbindelse_og_vaelgdb();
mysql_query($rediger_dokument);
luk_forbindelse();

}else{
$arrErrors2[] = "<span class=\"pfejl\">! Sorry, men upload skete IKKE!</span>";
}
}else {
$arrErrors2[] = "<span class=\"pfejl\">! Filen er for stor! Den må max være 10 MB!</span>";
}
}

?>
</html>
Avatar billede coderdk Praktikant
22. marts 2007 - 14:54 #3
.doc er ikke application/doc men application/msword
Avatar billede prop46 Nybegynder
22. marts 2007 - 15:02 #4
jeg har fået den til at uploade, men kan se at jeg af en eller anden bizar grund i mit oprindeligt script omdøbte alle billederne til .jpg. Hvordan laver jeg

$newname = $newname.".jpg";

om til

$newname = $newname."."(med den rigtige fil endelse);??
Avatar billede prop46 Nybegynder
22. marts 2007 - 15:04 #5
Tænker jeg kan bruge $type.. men den indeholder jo altså f.eks "application/pdf"
Avatar billede sw_red_6 Nybegynder
22. marts 2007 - 15:04 #6
er det ikke det der sker her: $newname = $newname.".$type"; ?
Avatar billede sw_red_6 Nybegynder
22. marts 2007 - 15:06 #7
så må du jo test på $type og sætte den rigtige endelse på..
if($type=="application/pdf") {
  $newname = $newname.".pdf";
} elseif("application/msword") {
  $newname = $newname.".doc";
}
Avatar billede prop46 Nybegynder
22. marts 2007 - 15:09 #8
:0) Hvis bare man dog kunne tænke selv af og til !

Læg nogle svar.. så få I point.
Avatar billede coderdk Praktikant
22. marts 2007 - 15:32 #9
(c:
Avatar billede sw_red_6 Nybegynder
22. marts 2007 - 16:05 #10
;o)
Avatar billede sw_red_6 Nybegynder
22. marts 2007 - 16:05 #11
ikke nogen point til mig
Avatar billede prop46 Nybegynder
22. marts 2007 - 16:42 #12
Og uhhh... må jeg ikke allernådigst bede om hjælp her --> http://www.eksperten.dk/spm/769490 inden jeg hiver mit hår ud og bliver skaldet :0)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester