Avatar billede nasneja Nybegynder
01. oktober 2003 - 13:37 Der er 9 kommentarer og
2 løsninger

Bilede upload virker ikke optimalt copy

Jeg har fundet følgende kode og rettet lidt:


$billede = $_POST['billede'];
$extAll=array(".jpg",".gif");
$ext=strtolower(substr($billede_name,strrpos($billede_name,".")));
if (!in_array($ext,$extAll)){
echo "Ikke billede fil";
} else {
copy ($billede,"varebilleder/$billede_name");unlink($billede);
}

selvom jeg uploader en gyldig .jpg fil siger den
echo "Ikke billede fil";
hvorfor?
Avatar billede sukos Juniormester
01. oktober 2003 - 14:29 #1
Hvorfor ikke bruge de "indbyggede" fuktioner til at tjekke for hvilken filtype som uploades?

Og $_POST vil aldrig gi' dig et upload resultat. (så vidt jeg ved!)

$_FILES  kan gøre det! :O)
Avatar billede googolplex Novice
01. oktober 2003 - 14:42 #2
Du kan tjekke mod $_FILES['type'];
Avatar billede googolplex Novice
01. oktober 2003 - 14:43 #3
Eller rettere:

$_FILES['navn']['type'];
Avatar billede nasneja Nybegynder
01. oktober 2003 - 18:20 #4
sukos, det ved jeg, ikke søgte lidt på eksperten efter upload billede. Det var dte jeg fik i hovedet langt de fleste gange.
men prøver at se så :)

goo... >> dvs . $_FILES['billede']['type']; hvad skal type ændres til?
Avatar billede googolplex Novice
01. oktober 2003 - 19:00 #5
$_FILES['billede']['type'] indeholder MIME-typen af din uploadede fil.

Du kan tjekke mod følgende array for .gif og .jgp.

$filtyper_tilladt = array('image/jpeg', 'image/pjpeg', 'image/gif');
Avatar billede nasneja Nybegynder
02. oktober 2003 - 22:05 #6
har bixet og bixet:
$filtyper_tilladt = array('image/jpeg', 'image/pjpeg', 'image/gif');

$billede_name = $_FILES[$_POST['billede']][$filtyper_tilladt];
$extAll=array(".jpg",".gif");
$ext=strtolower(substr($billede_name,strrpos($billede_name,".")));
if (!in_array($ext,$extAll)){
echo "Ikke billede fil";
} else {
copy ($billede,"varebilleder/$billede_name");unlink($billede);
}

$billedesti = $_POST['varenr'] . $billede_name;
den giver ingen fejl men heller inetet billede blvier uploadet?
Avatar billede sukos Juniormester
02. oktober 2003 - 22:19 #7
Du mixer også lidt af det hele.

hmm, du bør også bruge move_uploaded_file()
Og så lige en lidt anden måde at tjekke for filtype på, "browser-uafhængig" :O)

$filtyper = array("jpg", "jpeg", "gif");

$filnavn = pathinfo($_FILES["billede"]["name"]);

if(!in_array(@strtolower($filnavn["extension"]), $filtyper)) {
echo"Filen er ikke tilladt for upload!";
}else{
$billedesti = $_SERVER["DOCUMENT_ROOT"] ."/". $_POST["varenr"] ."/";
move_uploaded_file($_FILES["billede"]["tmp_name"], $billedsti . $_FILES["billede"]["name"]);
}

Du skal jo så ha' et dir som svarer til $_POST["varenr"]
Avatar billede nasneja Nybegynder
05. oktober 2003 - 13:37 #8
sukos når jeg prøver din skrevne gode falder den i:
echo"Filen er ikke tilladt for upload!";
selvom jeg uploader en fil a typen gif eller jpg?
Avatar billede sukos Juniormester
05. oktober 2003 - 15:55 #9
Hmm, ved ikke men pathinfo() kom først til fra version 4.0.3 af PHP
Versionen kan du tjekke med en

<?php phpinfo(); ?>


Og ellers, prøv denne her:

<html><head><title>Upload</title></head>
<body>

<center>

<form enctype="multipart/form-data" action="<?php echo $_SERVER["PHP_SELF"]; ?>" method="post">
<input type="hidden" name="upload" value="true">
Vælg fil til upload. <input name="billede" type="file"> <input type="submit" value="Upload">
<br>
Filer som accepteres:<br>
"gif", "jpeg", "jpg"
</form>
<?php
if(isset($_POST["upload"])) {
    if(!is_uploaded_file($_FILES["billede"]["tmp_name"])) {
    echo"Ingen upload";
    }else{

$filtyper = array("gif", "jpeg", "jpg");
$filen = pathinfo($_FILES["billede"]["name"]);
$sti = $_SERVER["DOCUMENT_ROOT"] ."/upload/";

    if(!in_array(@strtolower($filen["extension"]), $filtyper)) {
    echo"Filtypen ". $_FILES["billede"]["type"] ." kan ikke uploades";
    }else{
    move_uploaded_file($_FILES["billede"]["tmp_name"], $sti . $_FILES["billede"]["name"]);
    echo"Filen, ". $_FILES["billede"]["name"] ." er uploadet!";
        }
    }
}
?>
</center>

</body></html>

Der ligger osse et upload-script her:
http://www.showsource.dk/php/?list=Upload
Avatar billede nasneja Nybegynder
15. oktober 2003 - 18:43 #10
Jeg atkker :) sukos ligger du et svar?
Avatar billede sukos Juniormester
15. oktober 2003 - 18:45 #11
:O)
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