Avatar billede dennism Nybegynder
09. februar 2003 - 16:15 Der er 13 kommentarer og
1 løsning

Billedupload med spec. navn!

Sådan har jeg tænkt mig at tilføje en nyhed til min database:

mysql_query("INSERT INTO nyheder (tekst, tilfojet_af, billedfil) VALUES ('$_POST[tekst]','$navn','$filnavn')");

I tabelen nyheder, har jeg et felt der hedder "id", som automatisk bliver indsat...

Jeg skal nu bruge en billed-upload funktion, som kan uploade et billed... Hvis f.eks. billedet hedder "hej.jpg", så skal det uploadet til "images/nyheder/1.jpg", hvor 1 er ID'et på nyheden!... Og hvis filtypen f.eks. er .gif, så skal det være "images/nyheder/2.gif"...

Hvordan kan dette laves?
Avatar billede fangel Nybegynder
09. februar 2003 - 16:22 #1
hmm...

$type = substr($_FILES['userfile']['type'],strpost("/",$_FILES['userfile']['type']),-1)
$ID = 1283;
$filnavn = "./upload/" . $id . "." . $type;
echo $filnavn

gav det mening?

du skal først ændre $_FILES['userfile']['type'] til $_FILES['navn_på_det_felt_hvor_filen_vælges']['type']

Morten
Avatar billede dennism Nybegynder
09. februar 2003 - 16:24 #2
Nope.. Det var ingen mening :)
Jeg forstod det ik helt!..
Avatar billede fangel Nybegynder
09. februar 2003 - 16:29 #3
OK, vi prøver igen...

$_FILES['userfile']['type'] inholder fx "image/png" eller "text/html" (altså MIME typen af filen)

så, for at finde typen, tager vi fra "/"en og frem til sidste tegn...

det giver

$type = substr($_FILES['userfile']['type'],strpost("/",$_FILES['userfile']['type']),-1)

så laver vi et imaginært ID, i sidste tilfælde 1283, og så sammensætter vi et filnavn...

Morten
Avatar billede dennism Nybegynder
09. februar 2003 - 16:39 #4
Jamen.. Den skal jo også gemme billedet!
Avatar billede fangel Nybegynder
09. februar 2003 - 16:59 #5
så laver du en

copy($_FILES['tmp_name'],$filnavn);

bagefter,,,

Morten
Avatar billede dennism Nybegynder
09. februar 2003 - 18:10 #6
Her er min form:

echo"<div align=\"center\"><FORM class=\"inlineform\" METHOD=post ACTION=\"$_SERVER[REQUEST_URI]\">
<INPUT TYPE=\"hidden\" VALUE=\"tilfoj\" NAME=\"action_nyhed\">
Overskrift:<INPUT TYPE=text name=titel class=but size=25 value=\"$_POST[titel]\"><br>
Billed-fil:<input class=but type=\"File\" name=\"billedfil\" size=\"25\"><br>
<TEXTAREA class=but name=tekst ROWS=\"15\" COLS=\"50\">$_POST[tekst]</TEXTAREA><br>
<INPUT type=submit VALUE=\"Opret nyhed\" class=button></form></div><br>";

Og derefter kommer denne:

$type = substr($_FILES['billedfil']['type'],strpost("/",$_FILES['billedfil']['type']),-1);
$ID = 1283;
$filnavn = "./upload/" . $id . "." . $type;
echo "$filnavn";

Men så kommer følgende fejl:
Fatal error: Call to undefined function: strpost()

HVad skyldes deT?
Avatar billede madd Nybegynder
09. februar 2003 - 19:30 #7
skal være strpos() ;)
Avatar billede dennism Nybegynder
09. februar 2003 - 21:01 #8
FORM'en:

echo"<div align=\"center\"><FORM class=\"inlineform\" METHOD=post ACTION=\"$_SERVER[REQUEST_URI]\">
<INPUT TYPE=\"hidden\" VALUE=\"tilfoj\" NAME=\"action_nyhed\">
Overskrift:<INPUT TYPE=text name=titel class=but size=25 value=\"$_POST[titel]\"><br>
Billed-fil:<input class=but type=\"File\" name=\"billedfil\" size=\"25\"><br>
<TEXTAREA class=but name=tekst ROWS=\"15\" COLS=\"50\">$_POST[tekst]</TEXTAREA><br>
<INPUT type=submit VALUE=\"Opret nyhed\" class=button></form></div><br>";

Funktionen:
$type = substr($_FILES['billedfil']['type'],strpos("/",$_FILES['billedfil']['type']),-1);
$ID = 1283;
$filnavn = "./upload/" . $id . "." . $type;
echo "$filnavn";

Den printer bare: "./upload/.".

Hvorfor det?
Avatar billede dennism Nybegynder
10. februar 2003 - 11:41 #9
Kan I ikke hjælpe?
Avatar billede dennism Nybegynder
10. februar 2003 - 16:13 #10
Jeg lukker her...
Avatar billede fangel Nybegynder
10. februar 2003 - 16:29 #11
hmm.. sorry, jeg ikke har set du har lavet noget...

$type ved jeg ikke hvorfor ikke kan, men at den ikke skriver ID er fordi den et sted bliver kaldt $id, og et andet $ID... prøv at ændre det, så burde ID komme...

Morten
Avatar billede dennism Nybegynder
10. februar 2003 - 16:32 #12
dea_pg >>

Jamen.. Jeg skal jo også have den "type" til at virke!.. Det er jo næsten det der er ideen i scripet! :D
Avatar billede dennism Nybegynder
10. februar 2003 - 16:33 #13
Nu står der så:
./upload/1283.

Men der skal vel kun stå:
upload/1283.

!?
Avatar billede dennism Nybegynder
10. februar 2003 - 16:40 #14
Jeg har prøvet med dette:

$type = filetype('$_POST[billedfil]');
$id = 1283;
$filnavn = "upload/" . $id . $type;
echo "$filnavn";

Men det returnerer bare "upload/1283file"
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