Avatar billede rold Nybegynder
04. september 2003 - 12:28 Der er 27 kommentarer og
1 løsning

Upload billede og hent igen

Hey dér

Jeg har prøvet at få følgende script til at virke: http://www.eksperten.dk/spm/363114 

...men af en eller anden grund får jeg følgende fejlmeddelelse:

Warning: Unable to create '…/httpdocs/test/1062670768.gif': No such file or directory
Warning: Unable to move '/tmp/phpxKj6nC' to '… /httpdocs/test/1062670768.gif'

Jeg er ikke nogen haj til PHP/SQL, så hvis nogen kan forklare mig hvor jeg går galt i byen?

-rold
Avatar billede sostack Nybegynder
04. september 2003 - 13:13 #1
Du har tre punktummer foran Unable to create '…/httpdocs/test/1062670768.gif', det er jeg sikker på ikke er tilladt.

//sostack
Avatar billede ohmish Nybegynder
04. september 2003 - 14:38 #2
det ku tyde på at du har glemt $_SERVER['DOCUMENT_ROOT'] et sted?
Avatar billede ohmish Nybegynder
04. september 2003 - 14:40 #3
prøv at bruge scriptet fra det andet spørgsmål uden at ændre det store,  til at starte med. jeg er sikker på det er linien med $_SERVER['DOCUMENT_ROOT'] der enten mangler eller er forkert.
Avatar billede rold Nybegynder
04. september 2003 - 22:54 #4
Jeg har brugt scriptet som det er, har kun ændret til mine egne databaseoplysninger. ohmish >> linien du taler om ser således ud:

$sti = "/test/";
    $dist = $_SERVER["DOCUMENT_ROOT"] ."$sti";
Avatar billede ohmish Nybegynder
04. september 2003 - 23:12 #5
så er det med temp filen det går galt. svært at gætte uden at se lidt kode :)
Avatar billede rold Nybegynder
04. september 2003 - 23:18 #6
Hvis det er kode du vil have, er det hele her :)

<?php
if($_POST['up']){
    $files = $_FILES['upfil']['name'];
    $file = $_FILES['upfil']['tmp_name'];
    $fil_stoerrelse = filesize($file)/1024;
    if($fil_stoerrelse > "100") {
        echo "Det billede du prøver at uploade er <b>ikke</b> gyldigt - max 100 kb
        <a href=java script:history.back(-1)>Tilbage</a>";
        exit;
    }
    $billedewh = @GetImageSize($file);
    if ($billedewh['0'] > 90 || $billedewh['1'] > 90) {
        echo "Det billede du prøver at uploade er <b>ikke</b> gyldigt - max 90x90
        <a href=java script:history.back(-1)>Tilbage</a>";
        exit;
    }
    $sti = "/test/";
    $dist = $_SERVER["DOCUMENT_ROOT"] ."$sti";
    $temparr = explode(".", $files);
    $temparr[count($temparr)-2] = time();
    $files = implode(".", $temparr);
    move_uploaded_file($_FILES['upfil']['tmp_name'], $dist . $files);
    $connection = mysql_pconnect("localhost","user","pass");
    mysql_select_db("database");
    mysql_query("insert into billeder (navn, tekst, dato, filnavn, height, width) values ('$_POST[navn]', '$_POST[tekst]', now(), '$files', '$billedewh[0]', '$billedewh[1]')");
    echo "Din fil er nu uploadet<br><br>";
}
?>
Avatar billede ohmish Nybegynder
05. september 2003 - 00:03 #7
prøv at erstatte:
move_uploaded_file($_FILES['upfil']['tmp_name'], $dist . $files);

med:
copy($_FILES['upfil']['tmp_name'], $dist . $files);
Avatar billede jara06 Nybegynder
05. september 2003 - 08:45 #8
lille detalje, husk at mappen skal være skrivebar for din apache bruger...
Avatar billede rold Nybegynder
05. september 2003 - 09:44 #9
>> ohmish, jeg har foretaget den ændring du foreslog, og jeg er også kommet af med den ene af de to fejlmeddelelser. Men den skriver stadig:

Warning: Unable to create '…/httpdocs/test/1062670768.gif': No such file or directory
Avatar billede rold Nybegynder
05. september 2003 - 09:49 #10
>> jara06, hvordan klarer vi den lille detalje? :)
Avatar billede ohmish Nybegynder
05. september 2003 - 09:51 #11
hvordan ser din form ud?

hedder filfeltet f.eks "upfil"?
Avatar billede ohmish Nybegynder
05. september 2003 - 09:54 #12
din php.ini skulle gerne indeholde noget a la:

;;;;;;;;;;;;;;;;
; File Uploads ;
;;;;;;;;;;;;;;;;

; Whether to allow HTTP file uploads.
file_uploads = On

; Temporary directory for HTTP uploaded files (will use system default if not
; specified).
upload_tmp_dir = c:\serv\Apache\tmp\

; Maximum allowed size for uploaded files.
upload_max_filesize = 6M

Og temp-mappen skal sefølli eksistere
Avatar billede ohmish Nybegynder
05. september 2003 - 09:55 #13
er du sikker på at mappen "test" eksisterer i httpdocs mappen?
Avatar billede rold Nybegynder
05. september 2003 - 10:10 #14
php.ini?
Avatar billede rold Nybegynder
05. september 2003 - 10:15 #15
Min form ser sådan ud, ja filfeltet hedder "upfil"

<form action="test.php" method="post" enctype="multipart/form-data">
<b>Navn:</b><input type="text" name="navn"><br>
<b>Tekst:</b><input type="text" name="tekst"><br>
<b>Fil til upload:</b><input type="file" name="upfil"><br>
<input type="submit" value="upload" name="up">
</form>
Avatar billede rold Nybegynder
05. september 2003 - 10:45 #16
Den har ændret fejlmeddelsen til:

Warning: Unable to create '…/httpdocs/test/1062670768.gif': Permission denied in line 29
Avatar billede ohmish Nybegynder
05. september 2003 - 10:47 #17
hvordan ser linierne omkring #29 ud ?
Avatar billede ohmish Nybegynder
05. september 2003 - 10:47 #18
upload_tmp_dir = c:\serv\Apache\tmp\
skal sefølli rettes til dit eget
Avatar billede rold Nybegynder
05. september 2003 - 13:03 #19
Hey, nu kan jeg uploade. Super!
Billerne befinder sig nu i mappen httpdocs/test.
Har du også et forslag til hvordan jeg henter/viser dem igen på en anden side?

-rold
Avatar billede ohmish Nybegynder
05. september 2003 - 13:41 #20
godt så.
prøv med det her:

mysql_pconnect("localhost","user","pass");
mysql_select_db("database");
$mappe = "test/";

<?php
$gohent = @mysql_query("SELECT * FROM billeder");
while ($row = @mysql_fetch_array($gohent)) {
$pic = $row['filnavn'];
$pictext = $row['tekst'];
$picdato = $row['dato'];
echo "<img src=\"$mappe.$pic\" alt=\"$pictext - Uploaded $picdato\"><br><br>";
}
?>
Avatar billede ohmish Nybegynder
05. september 2003 - 13:46 #21
jeg vil råde dig til at lægge mysql linierne i en seperat fil, godt skjult. og inkludere den når du ska bruge den.
Avatar billede rold Nybegynder
05. september 2003 - 14:08 #22
Det ser alt sammen meget godt ud, bortset fra at billeder ikke bliver vist. Den viser en lille firkant med et rødt kryds, som om stien er forkert. Kan ikke helt se hvor den er gal.
Avatar billede ohmish Nybegynder
05. september 2003 - 14:15 #23
prøv evt. med

$mappe = "../test/";

istedet
Avatar billede ohmish Nybegynder
05. september 2003 - 14:16 #24
det kommer helt an på hvor du henter billedet fra
Avatar billede ohmish Nybegynder
05. september 2003 - 14:17 #25
hvis du henter dem fra testmappen selv, skal
$mappe være "";
Avatar billede ohmish Nybegynder
05. september 2003 - 14:18 #26
gi mig lige et link til din testside.. så ka jeg se hvordan det virker/ikke virker
Avatar billede rold Nybegynder
05. september 2003 - 14:22 #27
Det havde desværre ikke den store effekt. Jeg prøver at pusle lidt videre med det selv. Tak for hjælpen alle tre. ohmish var mest udholdende og får point :)

-rold
Avatar billede rold Nybegynder
05. september 2003 - 14:25 #28
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