Avatar billede xeox Nybegynder
18. oktober 2004 - 20:18 Der er 24 kommentarer og
2 løsninger

Hvorfor siger denne billede opload sådan ?

Hej.

Jeg har et script der ser sådan herud:

<?php

if (isset($_FILES['upfile'])) {

//til brug for info om filtyper
$str1 = $_FILES['upfile']['name'];
$str2 = $_FILES['upfile']['size'];
$str3 = $_FILES['upfile']['type'];

//Filer som kan uploades
$filetyper = array("image/gif", "text/html", "text/plain", "image/jpeg", "image/pjpeg", "image/png");

//stien, hvortil filerne skal placeres   
$dist = "/customers/trevi.dk/trevi.dk/httpd.www/billeder/";

//Tjek om der er en fil, samt om den overholder filtypen som kan uploades
    if (isset($_FILES['upfile']['name']) && $_FILES['upfile']['name'] == "") {
echo"Ingen fil valgt! <a href=\"$_SERVER[HTTP_REFERER]\">tilbage</a></td>\n";
echo"</tr></table>\n";
echo"</center>\n";
echo"</body></html>";
exit;

}elseif (!in_array($_FILES['upfile']['type'], $filetyper)) {
echo "Filen kan ikke uploades.<br>\n<b>$str3</b> er ikke tilladt for upload! <a href=\"$_SERVER[HTTP_REFERER]\">tilbage</a></td>\n";
echo"</tr></table>\n";
echo"</center>\n";
echo"</body></html>";
exit;
    }

echo"&Oslash;nsket fil til upload:<p>\n";

    if (isset($_FILES['upfile']['name']) && $_FILES['upfile']['name'] !="") {

//se http://dk.php.net/manual/en/function.is-uploaded-file.php for "is_uploaded_file"       
        if(is_uploaded_file($_FILES['upfile']['tmp_name'])) {

//Flyt filen fra upload-tmp til et dir. Husk at ændre "$dist" ovenover så det passer med din server :O)
move_uploaded_file($_FILES['upfile']['tmp_name'], $dist . $_FILES['upfile']['name']);
        }else{
        echo"Sorry, men upload skete IKKE!";
    }


echo "<b>Navn:</b> $str1, <b>st&oslash;rrelse:</b> $str2 bytes, <b>filtype:</b> $str3<br>\n";
echo"</p>";
    }
}else{

echo "Du skal v&aelig;lge en fil til upload. <a href=\"upload.php\">upload.php</a>";
}
?>



men den siger denne fejl:

Warning: move_uploaded_file(customers/xxxxx.dk/xxxxxx.dk/httpd.www/billeder/xxxxx.jpg): failed to open stream: No such file or directory in /customers/trevi.dk/xxxx.dk/httpd.www/xxxx/xxxx/up.php on line 79

Warning: move_uploaded_file(): Unable to move '/tmp/phpYXJxXI' to 'customers/xxxx.dk/xxxxx.dk/httpd.www/billeder/xxxxx.jpg' in /customers/trevi.dk/xxxxx.dk/httpd.www/xxxxx/xxxx/up.php on line 79
Navn: xxxxx.jpg, størrelse: 28054 bytes, filtype: image/pjpeg
Avatar billede xeox Nybegynder
18. oktober 2004 - 20:19 #1
undskyld, fik ikke lige skrevet færdig..


Men jeg kan ikke se hvorfor den gør det ?
Avatar billede hmortensen Nybegynder
18. oktober 2004 - 20:22 #2
Har du en mappe der hedder billeder under din rod ?
Avatar billede jakobdo Ekspert
18. oktober 2004 - 20:25 #3
Eller har du husket at lave skriverettigheder dit det dir?
chmod('customers/xxxx.dk/xxxxx.dk/httpd.www/billeder',0777);
Avatar billede hmortensen Nybegynder
18. oktober 2004 - 20:27 #4
Så burde der komme en permission denied

Hvis scriptet ligger i roden, så prøv at sætte $dist = "billeder/
Avatar billede hmortensen Nybegynder
18. oktober 2004 - 20:29 #5
Eller:
$dist = $_SERVER['DOCUMENT_ROOT']."/billeder/";
Avatar billede xeox Nybegynder
18. oktober 2004 - 20:33 #6
Ja der ligger mappen "billeder" i mappen "jens" .. så fik lige skrevet den forkerte sti.. men den vil bare se sådan her ud efter:

customers/xxxx.dk/xxxxx.dk/httpd.www/xxxx/billeder/

og jep den er CHMOD 777.. og det virker stadig ikke :(.. den siger det samme
Avatar billede hmortensen Nybegynder
18. oktober 2004 - 20:35 #7
Så må det blive:
$dist = $_SERVER['DOCUMENT_ROOT']."/jens/billeder/";
Avatar billede xeox Nybegynder
18. oktober 2004 - 20:37 #8
mappen ligger ikke i samme mappe som filen up.php, billeder ligger i mappen "før" mappen ADM
Avatar billede hmortensen Nybegynder
18. oktober 2004 - 20:39 #9
Derfor bør min sidste kommentar virke, da den sætter stien til roden / jens / billeder /
Avatar billede xeox Nybegynder
18. oktober 2004 - 20:40 #10
den siger fint nok den rigtige sti, men siger stadig fejl..

Warning: move_uploaded_file(customers/xxxx.dk/xxxx.dk/httpd.www/jens/billeder/xxxx.jpg): failed to open stream: No such file or directory in /customers/xxxxx.dk/xxxxx.dk/httpd.www/jens/adm/up.php on line 79

Warning: move_uploaded_file(): Unable to move '/tmp/php5Exc5J' to 'customers/xxxx.dk/xxxx.dk/httpd.www/jens/billeder/xxxx.jpg' in /customers/xxxx.dk/xxxxx.dk/httpd.www/jens/adm/up.php on line 79
Navn: xxxx.jpg, størrelse: 28054 bytes, filtype: image/pjpeg



linjen 79 er

move_uploaded_file($_FILES['upfile']['tmp_name'], $dist . $_FILES['upfile']['name']);
Avatar billede hmortensen Nybegynder
18. oktober 2004 - 20:44 #11
Hvad står $dist til præcist nu ?
Ud fra fejlen mangler du en / forrest
Avatar billede xeox Nybegynder
18. oktober 2004 - 20:57 #12
den står til:
$dist = $_SERVER['DOCUMENT_ROOT']."/jens/billeder/";
Avatar billede hmortensen Nybegynder
18. oktober 2004 - 20:59 #13
Udfra fejl beskeden skal den se sådan her ud, hvilket virker underligt:
$dist = "/".$_SERVER['DOCUMENT_ROOT']."/jens/billeder/";
Avatar billede xeox Nybegynder
18. oktober 2004 - 21:22 #14
af en eller anden mærkelig grund havde mit ftp program ikke uploadet den rettede fil.. men det virker fint nu ;);).. jeg skal lige høre .. kan det lade sig gøre at lave på en eller anden måde så den fil man ligger får et nummer ..? der ligger nemlig 10 andre billeder med numrene 1-10.jpg .. kan den selv finde ud af at ændre navnet med +1 ?.. eller er det nemmere bare at ændre navnet før den kommer op ?
Avatar billede hmortensen Nybegynder
18. oktober 2004 - 21:37 #15
Vil tror det kan gøres således. Kan sikkert gøres smartere.

$filearray = array();
while (false !== ($file = readdir($dist))) {
    $filearray[] = $file;
}
sort($filearray, SORT_NUMERIC);
$var = explode(".", end($filearray));
move_uploaded_file($_FILES['upfile']['tmp_name'], $var[0]+1);
Avatar billede xeox Nybegynder
18. oktober 2004 - 22:11 #16
hvor skal  det ind ---?

her?:
//Flyt filen fra upload-tmp til et dir. Husk at ændre "$dist" ovenover så det passer med din server :O)
move_uploaded_file($_FILES['upfile']['tmp_name'], $dist . $_FILES['upfile']['name']);
        }else{
        echo"Sorry, men upload skete IKKE!";
    }
Avatar billede hmortensen Nybegynder
18. oktober 2004 - 22:26 #17
Istedet for din move_uploaded_file linie
Avatar billede sukos Juniormester
19. oktober 2004 - 08:38 #18
Hvis det kun er billeder som uploades, skal du lige fjerne nogle af de typer som kan uploades.

$filer = 0;
while (false !== ($file = readdir($dist))) {
if(is_dir($file)) {
continue;
}
    $filer++;
}

$type = end(explode($_FILES['upfile']['name']));
$nytnavn = ($filer+1) .".". $type;
move_uploaded_file($_FILES['upfile']['tmp_name'], $dist . $nytnavn);
Avatar billede sukos Juniormester
19. oktober 2004 - 08:42 #19
Og hvis det kun er billeder:

$filer = 0;
while (false !== ($file = readdir($dist))) {
if(is_dir($file)) {
continue;
}
    $filer++;
}

// Array med filtyper, til brug for det endelige filnavn
$filetypes = array(1 => "gif", 2 => "jpg", 3 => "png");

$str = getimagesize($_FILES['upfile']['tmp_name']);
$type = strtr($str[2], $filetypes);
$nytnavn = ($filer+1) .".". $type;
move_uploaded_file($_FILES['upfile']['tmp_name'], $dist . $nytnavn);
Avatar billede trevi Nybegynder
19. oktober 2004 - 11:32 #20
så du vil bare have jeg sætter:

$filer = 0;
while (false !== ($file = readdir($dist))) {
if(is_dir($file)) {
continue;
}
    $filer++;
}

// Array med filtyper, til brug for det endelige filnavn
$filetypes = array(1 => "gif", 2 => "jpg", 3 => "png");

$str = getimagesize($_FILES['upfile']['tmp_name']);
$type = strtr($str[2], $filetypes);
$nytnavn = ($filer+1) .".". $type;
move_uploaded_file($_FILES['upfile']['tmp_name'], $dist . $nytnavn);

ind her:

//Flyt filen fra upload-tmp til et dir. Husk at ændre "$dist" ovenover så det passer med din server :O)
move_uploaded_file($_FILES['upfile']['tmp_name'], $dist . $_FILES['upfile']['name']);


??
Avatar billede xeox Nybegynder
19. oktober 2004 - 11:34 #21
Hov. Min bror havde ikke logget af sin bruger.. så det er mig der skrev den oppe over
Avatar billede xeox Nybegynder
23. oktober 2004 - 17:03 #22
smid et svar en eller anden. og evt. lige svar på mit spørgsmål.. ellers tager jeg points selv
Avatar billede jakobdo Ekspert
25. oktober 2004 - 11:01 #23
Jeg kan da godt smide et svar! :o)
Avatar billede hmortensen Nybegynder
25. oktober 2004 - 11:11 #24
jakobdo, det kunne du jo ikke finde ud af ;)
Avatar billede jakobdo Ekspert
25. oktober 2004 - 11:23 #25
Damn!
Avatar billede xeox Nybegynder
25. oktober 2004 - 11:26 #26
sådan. Tak for hjælpenm :).

-lukket-
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