Avatar billede grippen Nybegynder
31. marts 2007 - 21:41 Der er 8 kommentarer og
1 løsning

Upload, Gemmer filerne mærkeligt..

Heysa.. Jeg har lidt problemer med et upload script (som jeg tror laver fejlen) Den ligger filerne i databasen og gemmer dem i en mappe "billeder", her kommer problemet: Den kan ikk genkende billederne på serveren, altså dvs. jeg overfører et JPG eller et GIF billede til serveren via upload funktionen, og så når jeg vil se det på serveren, så kan den ikk genkende filerne. Hvorfor gør den det :S ? Er det fordi den ligger dem som temp. filer? Nå, men her er scriptet...

<?php

if (isset($_FILES['filnavn'])) {
    print "Fil, der er blevet overført: {$_FILES['filnavn']['name']}<p>\n";
   
    $query = "INSERT INTO billeder SET billednavn='".$_FILES['filnavn']['name']."'";
   
    $Result1 = mysql_query($query, $RG_Community) or die(mysql_error());
}

{
$tempfile = $_FILES['filnavn']['tmp_name'];
$destination = "../billeder/{$_FILES['filnavn']['name']} ";
copy($tempfile, $destination);

}

?>
Avatar billede nixir Nybegynder
08. april 2007 - 13:11 #1
burde dit spg ikke være under php ??

Kan du ikke specificerer fejlen?

Bliver filen flyttet til dit servers mappe billeder?
Bliver filnavnet gemt i databasen - og bliver det gemt rigtigt?


Og et lille side-spørgsmål, burde du ikke uploade filen før du udskriver "Fil, der er blevet over....." ?
Jeg plejer altid at uploade filen, tjekke om den er blevet uploaded, udskrive en "succes" ... Så kører jeg query og hvis den bliver udført korrekt udskriver jeg en til "succes"... (eller udskriver faktisk error når det mislykkes - men efter samme princip)
Avatar billede grippen Nybegynder
08. april 2007 - 15:46 #2
hey, jo mybad :D...

Jeg har testet scriptet på en anden maskine og der virker det. Men på den jeg kører det på den jeg er på nu, virker det ikke.. dette er maskinen som det kører på normalt hvor dette ikk virker: http://www.dataworld.dk/index.php?sideid=shop&vare=2018
Men på min anden "rigtige" server, der virker det..

Den gemmer det i databasen og i selve "billede" mappen. Men når jeg vil se filerne så ved den ik hvilke filer det er, dvs overfører jeg et jpg billede, står der bare det er en Fil når jeg kigger i mappen.

til dit sidespørgsmål, Jeg er stadig sån lidt på noobstadiet, så tager 1 skridt af gangen :D

Men har os et andet spørgsmål, hvis du kan svarer på det..?
Det er når jeg nu uploader et billede, om man kan gøre sån så at den viser billedet som måske er 600x400 px, kan vise det så det blir måske 100x100... (for billedet kommer på forsiden, og der er 600x400 lige lovlig voldsomt :D
Avatar billede nixir Nybegynder
10. april 2007 - 00:00 #3
Så skal du have fat i noget gdlib eller lign for det skal blive pænt... De tråde burde der være rigelig af herinde - men spørgsmålet er hvad din server understøtter - for den understøtter næsten med garanti en eller anden form for billede formaterings plugin.

Kan du se filen via ftp på din server? og hvis, har filen det rigtige navn?

Kan du se det korrekte filnavn i databasen?
Avatar billede grippen Nybegynder
10. april 2007 - 23:41 #4
ja, filen får det 100 % rigtige navn i databasen, har ik lige prøvet ftp delen, prøver jeg her i morn :D... Jeg kan heller ik slette de billeder jeg overfører til den server hvor det ik virker..  den siger Kilden ikke kan læses... lidt irreterende...
Avatar billede nixir Nybegynder
11. april 2007 - 12:55 #5
Det lyder som om der er fejl i den del hvor du uploader filen...

Så tjek om den ligger på din server der hvor du forventer (via ftp).

Har du tjekket om din server har gdlib? Jeg brugte engang den her kode til at lave et thumb med max højde på 112 ELLER en max bredde på 75: (kun jpg - gemmer som NAVN_thumb.jpg)

function makethumb($path) {
    $orgpicture = imagecreatefromjpeg($path);
    $orgwidth = imagesx($orgpicture);
    $orgheight = imagesy($orgpicture);
    $ratio = $orgheight / $orgwidth;
    $ratio2 = $orgwidth / $orgheight;
    $forhold = 112 / 75;
    $forhold2 = 75 / 112;
    if($ratio <= $forhold) {
        $thumbwidth = 75;
        $thumbheight = $thumbwidth * $ratio;
    } elseif($ratio2 <= $forhold2) {
        $thumbheight = 112;
        $thumbwidth = $thumbheight * $ratio2;
    }
    $thumb = imagecreatetruecolor($thumbwidth, $thumbheight);
    imagecopyresampled($thumb, $orgpicture, 0, 0, 0, 0, $thumbwidth, $thumbheight, $orgwidth, $orgheight);
    $ext = strrchr($path, '.');
    $newpath = substr($path, 0, -strlen($ext));
    $newpath = $newpath.'_thumb.jpg';
    imagejpeg($thumb, $newpath, 100);
}

makethumb('billeder/'.$billede);


Mht. til upload af billede har jeg en kode jeg engang har brugt der minder meget om din - derfor det undre mig hvis din ikke virker: (Tror måske du får lagt dine billeder i en forkert mappe, det bured den her kode forebygge)

$tmp = $_FILES['filnavn']['tmp_name'];
$dist = $_SERVER['DOCUMENT_ROOT']."/billeder/".$_FILES['fileup']['name']; //BURDE SIKRE AT DIST ER KORREKT
if (is_uploaded_file($tmp)) { // HVIS FILEN ER UPLOADED TIL TMP DIST GØR DA:
    move_uploaded_file($tmp, $dist); //ISTEDET FOR DIN COPY - VED IKKE OM DET GØR EN FORSKEL
} else {
    $msg = '<font color="#CC0000"><strong>BILLEDET BLEV IKKE UPLOADED</strong></font><br>';
}
Avatar billede nixir Nybegynder
11. april 2007 - 13:08 #6
Forsøger mig med et svar på tråden :)

<?php
if (!isset($_FILES['filnavn'])) {
    $msg = '<font color="#CC0000"><strong>ET BILLEDE SKAL UPLOADES</strong></font>';
} else {
    $tmp = $_FILES['filnavn']['tmp_name'];
    $dist = $_SERVER['DOCUMENT_ROOT']."/billeder/".$_FILES['filnavn']['name'];
    if (is_uploaded_file($tmp)) {
        move_uploaded_file($tmp, $dist);

        $query = "INSERT INTO billeder SET billednavn='".$_FILES['filnavn']['name']."'"; // blander mig ikke i din database
        $Result1 = mysql_query($query, $RG_Community) or die(mysql_error()); // blander mig ikke i din database

        $msg = '<strong>BILLEDET BLEV UPLOADED</strong>';
    } else {
        $msg = '<font color="#CC0000"><strong>BILLEDET BLEV IKKE UPLOADED</strong></font>';
    }
}
?>

<?php
if (isset($msg)) {
    print $msg; //nu kan du udskrive status-msg hvor du vil på siden
}
?>

Det er skrevet i hånden, så jeg tager lige forbehold for småfejl - men det burde virke...
Opret en ny tråd hvis du vil have lavet thumb_nail også...

Mvh.
Avatar billede grippen Nybegynder
11. april 2007 - 20:06 #7
jeg siger mange tak for dine svar.. jeg vil prøve om det virker :D
Avatar billede nixir Nybegynder
11. april 2007 - 23:43 #8
Eftersom du har givet mig point håber jeg det virker :)

Det okay du tjekker det inden du accepterer det som svar ;) Bare til en anden gang!
Avatar billede grippen Nybegynder
11. april 2007 - 23:52 #9
okay ;D
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
Computerworld tilbyder specialiserede kurser i database-management

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