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
Annonceindlæg fra Admin By Request
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
04. september 2003 - 14:38
#2
det ku tyde på at du har glemt $_SERVER['DOCUMENT_ROOT'] et sted?
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.
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";
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 :)
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>"; } ?>
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);
05. september 2003 - 08:45
#8
lille detalje, husk at mappen skal være skrivebar for din apache bruger...
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
05. september 2003 - 09:49
#10
>> jara06, hvordan klarer vi den lille detalje? :)
05. september 2003 - 09:51
#11
hvordan ser din form ud? hedder filfeltet f.eks "upfil"?
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
05. september 2003 - 09:55
#13
er du sikker på at mappen "test" eksisterer i httpdocs mappen?
05. september 2003 - 10:10
#14
php.ini?
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>
05. september 2003 - 10:45
#16
Den har ændret fejlmeddelsen til: Warning: Unable to create '…/httpdocs/test/1062670768.gif': Permission denied in line 29
05. september 2003 - 10:47
#17
hvordan ser linierne omkring #29 ud ?
05. september 2003 - 10:47
#18
upload_tmp_dir = c:\serv\Apache\tmp\ skal sefølli rettes til dit eget
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
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>"; } ?>
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.
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.
05. september 2003 - 14:15
#23
prøv evt. med $mappe = "../test/"; istedet
05. september 2003 - 14:16
#24
det kommer helt an på hvor du henter billedet fra
05. september 2003 - 14:17
#25
hvis du henter dem fra testmappen selv, skal $mappe være "";
05. september 2003 - 14:18
#26
gi mig lige et link til din testside.. så ka jeg se hvordan det virker/ikke virker
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
05. september 2003 - 14:25
#28
Vi tilbyder markedets bedste kurser inden for webudvikling