Avatar billede tlunde Nybegynder
09. marts 2004 - 23:25 Der er 21 kommentarer og
2 løsninger

hjælp til upload af billede via php form?

Hejsa,
Prøv lige at logge ind her:
http://www.thomaslunde.dk/jobs/thomas/admin/login.php

med lunde/lunde

og så gå under punktet "Tilføj ny film". I bunden der, har jeg et billede jeg gerne vil tilføje til hele denne beskrivelse, som skal gemmes i en mappe på serveren. Hvordan gør jeg det nemmest??

Når der trykkes "Tilføj film til databasen", så skal billedet ligges i mappen upload i roden af min webhotel, og URL'en til billedet, skal ligges ind i databasen under kolonnen "pic_url".

Nogen der har mod på at hjæpe mig??

Hilsen
Thomas Lunde

PS. Det skal lige siges, at alt det andet i denne form virker nu, med at det bliver tilføjet i databasen. Jeg mangler bare lige det med at billedet skal uploades til en mappe, og URL'en dertil skal gemmes under "pic_url" i databasen...
Avatar billede jakobclausen Nybegynder
09. marts 2004 - 23:29 #1
Læs denne artikel og se om det ikke kan hjælpe dig lidt igang:
http://www.webcafe.dk/artikler/php/upload/upload.html
Avatar billede jakobclausen Nybegynder
09. marts 2004 - 23:35 #2
Avatar billede tlunde Nybegynder
09. marts 2004 - 23:44 #3
jacobclausen >> den har jeg læst igennem, uden held :(

Men jeg har fundet dette kode:
<?php

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

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

        if(is_uploaded_file($HTTP_POST_FILES['upfile']['tmp_name'])) {

        $dist = $HTTP_SERVER_VARS['DOCUMENT_ROOT'] ."/upload/";

        move_uploaded_file($HTTP_POST_FILES['upfile']['tmp_name'], $dist . $HTTP_POST_FILES['upfile']['name']);
        $besked = $HTTP_POST_FILES['upfile']['name'] ." er blevet uploadet med succes!";
    }else{
        $besked = "Sorry, men upload skete IKKE!";
    }

}else{

$besked = "Du glemte at v&aelig;lge en fil!";
    }

}else{

$besked = "V&aelig;lg en fil til upload:";
}
?><html><head><title>Upload fil</title>
</head>
<body>
<form enctype="multipart/form-data" action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
<center>
<table><tr>
<td><?php echo $besked; ?><br>
<input name="upfile" type="file" size="32"><p>
<center><input type="submit" value="Upload" class="submit"></center></td>

</tr></table>

</center>
</form>
</body></html>

Som jeg har smidt ind her: http://www.thomaslunde.dk/jobs/thomas/upload/test.php

Og det virker også fint nok, den oploader de ting jeg skal bruge, men jeg skulle gerne have det koblet sammen med min form og mit databasekald...
Avatar billede detox Nybegynder
10. marts 2004 - 00:50 #4
Jeg vil mene du kan bruge denne stump til at modtage dit billede med:

if (isset($_FILES['file'])) {
    if (isset($_FILES['file']['name']) && $_FILES['file']['name'] !="") {
        if(is_uploaded_file($_FILES['file']['tmp_name'])) {
        $dist = $_SERVER['DOCUMENT_ROOT'] ."/upload/" . $_FILES['file']['name'];
        move_uploaded_file($_FILES['file']['tmp_name'], $dist);
        // indsæt $dist i din database her (eller måske blot navnet stien kender du jo)
        /*$besked = $_FILES['file']['name'] ." er blevet uploadet med succes!";
    }else{
        $besked = "Sorry, men upload skete IKKE!";*/
    }
}else{

Den del der er udkommenteret med /* */ kan du bruge eller lade være.
Avatar billede tlunde Nybegynder
10. marts 2004 - 08:15 #5
Nu har jeg prøvet at bikse noget kode sammen, men det vil ikke rigtigt. Gider i lige kigge på det??

<?php
if (isset($HTTP_POST_FILES['upfile'])) {
    if (isset($HTTP_POST_FILES['upfile']['name']) && $HTTP_POST_FILES['upfile']['name'] !="") {
        if(is_uploaded_file($HTTP_POST_FILES['upfile']['tmp_name'])) {
        $dist = $HTTP_SERVER_VARS['DOCUMENT_ROOT'] ."/upload/";
        move_uploaded_file($HTTP_POST_FILES['upfile']['tmp_name'], $dist . $HTTP_POST_FILES['upfile']['name']);
        $besked = $HTTP_POST_FILES['upfile']['name'] ." er blevet uploadet med succes!";
        header("Location: filmliste_gem.php");
    }else{
        $besked = "Sorry, men upload skete IKKE!";
    }
}else{
$besked = "Du glemte at vælge en fil!";
    }
}
?>

            <form enctype="multipart/form-data" action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post" name="post">
            <table width="80%" border="0" cellpadding="0" cellspacing="0">
              <tr class="tekstafsnit">
                <td width="26%">Titel:</td>
                <td width="3%">&nbsp;</td>
                <td width="71%">                  <input name="titel" type="text" id="titel" size="30" style="border: 1 solid #000000">
                </td>
                </tr>
              <tr valign="middle" class="tekstafsnit">
                <td>Udgivelsesdato:</td>
                <td>&nbsp;</td>
                <td valign="top">                  <input name="udg_dato" type="text" id="udg_dato" size="30" style="border: 1 solid #000000">
                  (Eks. 10-02-2004)</td>
                </tr>
              <tr class="tekstafsnit">
                <td>Film selskab:</td>
                <td>&nbsp;</td>
                <td>                  <input name="selskab" type="text" id="selskab" size="30" style="border: 1 solid #000000">
                  </td>
              </tr>
              <tr class="tekstafsnit">
                <td>Instrukt&oslash;r:</td>
                <td>&nbsp;</td>
                <td>                  <input name="instruktoer" type="text" id="instruktoer" size="30" style="border: 1 solid #000000">
                  </td>
              </tr>
              <tr class="tekstafsnit">
                <td>Kategori:</td>
                <td>&nbsp;</td>
                <td>
                  <table width="100%" border="0" cellpadding="3" cellspacing="0">
                    <tr valign="middle" class="tekstafsnit">
                      <td><input type="checkbox" name="box[]" value="action">Action</td>
                      <td><input type="checkbox" name="box[]" value="drama">Drama</td>
                      <td><input type="checkbox" name="box[]" value="musical">Musical</td>
                      </tr>
                    <tr valign="middle" class="tekstafsnit">
                      <td><input type="checkbox" name="box[]" value="animation">Animation</td>
                      <td><input type="checkbox" name="box[]" value="eventyr">Eventyr</td>
                      <td><input type="checkbox" name="box[]" value="romantik">Romantik</td>
                      </tr>
                    <tr valign="middle" class="tekstafsnit">
                      <td><input type="checkbox" name="box[]" value="boern">Børne film</td>
                      <td><input type="checkbox" name="box[]" value="familie">Familie film</td>
                      <td><input type="checkbox" name="box[]" value="scifi">Sci-Fi</td>
                      </tr>
                    <tr valign="middle" class="tekstafsnit">
                      <td><input type="checkbox" name="box[]" value="danske">Danske film</td>
                      <td><input type="checkbox" name="box[]" value="gyser">Gyser</td>
                      <td><input type="checkbox" name="box[]" value="thriller">Thriller</td>
                      </tr>
                    <tr valign="middle" class="tekstafsnit">
                      <td><input type="checkbox" name="box[]" value="disney">Disney film</td>
                      <td><input type="checkbox" name="box[]" value="komedie">Komedie</td>
                      <td><input type="checkbox" name="box[]" value="tv_serie">TV-serie</td>
                      </tr>
                    <tr valign="middle" class="tekstafsnit">
                      <td><input type="checkbox" name="box[]" value="dokumentar">Dokumentar</td>
                      <td><input type="checkbox" name="box[]" value="krig">Krigsfilm</td>
                      <td><input type="checkbox" name="box[]" value="western">Western</td>
                      </tr>
                    </table>
                  </td>
              </tr>
              <tr class="tekstafsnit">
                <td>Tilladt for:</td>
                <td>&nbsp;</td>
                <td>
                  <select name="tilladt" id="tilladt" style="border: 1 solid #000000">
                  <option value="0_99">Tilladt for alle
                  <option value="7_99">Tilladt for alle, men frar&aring;des b&oslash;rn
                  under 7&aring;r
                  <option value="11_99">Tilladt for b&oslash;rn over 11 &aring;r
                  <option value="15_99">Tilladt for b&oslash;rn over 15 &aring;r
                  </select>
                  </td>
              </tr>
              <tr class="tekstafsnit">
                <td>Varighed i minutter:</td>
                <td>&nbsp;</td>
                <td>                  <input name="varighed" type="text" id="varighed" size="30" style="border: 1 solid #000000">
                (Kun tal)</td>
                </tr>
              <tr class="tekstafsnit">
                <td>Lydformat:</td>
                <td>&nbsp;</td>
                <td>                  <input name="lydformat" type="text" id="lydformat" size="30" style="border: 1 solid #000000">
                  </td>
              </tr>
              <tr class="tekstafsnit">
                <td>Billedformat:</td>
                <td>&nbsp;</td>
                <td>                  <input name="billedformat" type="text" id="billedformat" size="30" style="border: 1 solid #000000">
                  </td>
              </tr>
              <tr class="tekstafsnit">
                <td>Filmens sprog:</td>
                <td>&nbsp;</td>
                <td><input name="sprog" type="text" id="sprog" size="30" style="border: 1 solid #000000">
(Adskil med komma og mellemrum)</td>
                </tr>
              <tr class="tekstafsnit">
                <td>Skuespillere:</td>
                <td>&nbsp;</td>
                <td>                  <input name="skuespillere" type="text" id="skuespillere" size="30" style="border: 1 solid #000000">
                (Adskil med komma og mellemrum)</td>
                </tr>
              <tr class="tekstafsnit">
                <td>Beskrivelse:</td>
                <td>&nbsp;</td>
                <td><textarea name="beskrivelse" cols="50" rows="7" id="beskrivelse" style="border: 1 solid #000000"></textarea></td>
                </tr>
              <tr class="tekstafsnit">
                <td>Ekstra materiale:</td>
                <td>&nbsp;</td>
                <td><textarea name="andet" cols="50" rows="7" id="andet" style="border: 1 solid #000000"></textarea></td>
                </tr>
              <tr class="tekstafsnit">
                <td>Tilf&oslash;j billede:</td>
                <td>&nbsp;</td>
                <td><input name="upfile" type="file" style="border: 1 solid #000000" size="50">
                </td>
                </tr>
              <tr class="tekstafsnit">
                <td>&nbsp;</td>
                <td>&nbsp;</td>
                <td>&nbsp;</td>
                </tr>
              <tr class="tekstafsnit">
                <td>&nbsp;</td>
                <td>&nbsp;</td>
                <td><strong>
                  <input type="submit" name="Submit" value="Tilføj film til databasen" style="border: 1 solid #000000">
                </strong></td>
                </tr>
              </table>
            </form>

Problemet i hele denne kode er, at jeg skal have tilføjet til billede i bunden af formen, som skal uploades til mappen "upload" på mit webhotel, samt at URL'en til billedet skal gemmes under "pic_url" i databasen. Koden for tilføjelse af data til databasen ser sådan her ud:

$kategori = implode(", ", $_POST["box"]);

$dato = date('d/m/Y H:i:s');
mysql_query("INSERT INTO www_filmliste (dato, titel, udg_dato, selskab, instruktoer, kategori, tilladt, varighed, lydformat, billedformat, sprog, skuespillere, beskrivelse, andet) VALUES ('$dato', '$titel', '$udg_dato', '$selskab', '$instruktoer', '$kategori', '$tilladt', '$varighed', '$lydformat', '$billedformat', '$sprog', '$skuespillere', '$beskrivelse', '$andet')") OR DIE (mysql_error());
mysql_close;
header("Location: ../index.php");
Avatar billede detox Nybegynder
10. marts 2004 - 12:19 #6
Den ser da ud til at uploade filen, men når du laver:
header("Location: filmliste_gem.php");
Så får du jo ikke variablerne med over. Så det vil være bedre om du indsatte koden fra: 'filmliste_gem.php' der istedet. Og selvfølgelig tilføjer 'pic_url' der. Hvilken version af php bruger du?
Avatar billede tlunde Nybegynder
11. marts 2004 - 21:49 #7
Når du lige har tid, så har jeg lige noget jeg gerne vil spørge om her til sidst...jeg har fået det andet til at virke, men at uploade billede og URL...
Avatar billede detox Nybegynder
11. marts 2004 - 22:04 #8
Hvad vil du spørge om?
Avatar billede tlunde Nybegynder
11. marts 2004 - 22:08 #9
Jeg har denne:
$dist = $_SERVER['DOCUMENT_ROOT'] ."/upload/" . $_FILES['file']['name'];

der gemmer url'en til billedet i databasen, men det er server url'en der gemmes, og den er gemt sådan her:
/customers/thomaslunde.dk/thomaslunde.dk/httpd.www/upload/

Men jeg vil gerne at url'en til billedet er gemt, så den ser sådan her ud istedet for:
www.thomaslunde.dk/upload/billede.jpg

Hvordan gør jeg det?
Avatar billede tlunde Nybegynder
11. marts 2004 - 22:16 #10
Ved du hvordan det skal gøres?
Avatar billede detox Nybegynder
11. marts 2004 - 22:18 #11
Kunne du ikke bare sætte den sådan:

$dist = 'www.thomaslunde.dk/upload/'.$_FILES['file']['name'];
Avatar billede tlunde Nybegynder
11. marts 2004 - 22:23 #12
Prøver lige...
Avatar billede tlunde Nybegynder
11. marts 2004 - 22:26 #13
Den kommer med dette:
Warning: Unable to create 'www.thomaslunde.dk/upload/simonth.jpg': No such file or directory in /customers/thomaslunde.dk/thomaslunde.dk/httpd.www/jobs/thomas/filmlisten/filmliste_tilfoej.php on line 11

Warning: Unable to move '/tmp/phpyowckP' to 'www.thomaslunde.dk/upload/simonth.jpg' in /customers/thomaslunde.dk/thomaslunde.dk/httpd.www/jobs/thomas/filmlisten/filmliste_tilfoej.php on line 11

Warning: Cannot add header information - headers already sent by (output started at /customers/thomaslunde.dk/thomaslunde.dk/httpd.www/jobs/thomas/filmlisten/filmliste_tilfoej.php:11) in /customers/thomaslunde.dk/thomaslunde.dk/httpd.www/jobs/thomas/filmlisten/filmliste_tilfoej.php on line 31
Avatar billede detox Nybegynder
12. marts 2004 - 00:34 #14
Ok, I see! Kan du så ikke bruge $dist som du havde og fx lave:

$link = 'www.thomaslunde.dk/upload/'.$_FILES['file']['name'];

til indsættelse i databasen.
Man kunne osse forestille sig at du blot gemte filnavnet i databasen og så tilføjede:
'www.thomaslunde.dk/upload/' når du hev filnavnene ud af tabellen.
Avatar billede tlunde Nybegynder
12. marts 2004 - 08:51 #15
Lidt længere kom vi da nu...
Efter jeg har indsat dette:
$link = 'http://www.thomaslunde.dk/upload/'.$_FILES['file']['name'];


indsætter den kun dette i databasen:
http://www.thomaslunde.dk/upload/

Jeg har prøvet at rode lidt med den første linie, for at se om jeg kunne fikse det, men den kom hele tiden med en fejl...Kan du se hvad det er der skal ændres??
Avatar billede detox Nybegynder
12. marts 2004 - 10:35 #16
Har du fjernet header() og indsat koden hvor du gemmer oplysningerne i databasen på selve siden?
Avatar billede tlunde Nybegynder
12. marts 2004 - 10:40 #17
Ja, det har jeg gjort, og alt det med at indsætte de forskellige felter i databasen fungere godt nok. Det er bare lige det der med linket der skal ind i databasen.
Denne her: $link = 'http://www.thomaslunde.dk/upload/'.$_FILES['file']['name']; indsætter kun http://www.thomaslunde.dk/upload/ i databasen og jeg vil gerne have filnavnet med, så den gemmer f.eks. http://www.thomaslunde.dk/upload/billede01.jpg
Avatar billede jakobclausen Nybegynder
12. marts 2004 - 10:42 #18
tlunde >> Har du prøvet at udskrive din funktion for at se om den overhovedet opfanger navnet - eller om det er indsættelsen problemet opstår:

echo 'http://www.thomaslunde.dk/upload/'.$_FILES['file']['name'];
Avatar billede tlunde Nybegynder
12. marts 2004 - 10:45 #19
jakobclausen >> Hvordan skal jeg skrive denne funktion ud? Bare i en tom side, eller på samme side?
Avatar billede jakobclausen Nybegynder
12. marts 2004 - 10:48 #20
Kender ikke lige så meget til den funktion, men det den skal gøre er vel at finde navnet på en eller anden fil, ik?

Så hvis du prøver at udskrive den istedet for at tilføje den, på den side hvor du skal bruge den, vil du jo kunne se om den overhovedet finder filnavnet
Avatar billede tlunde Nybegynder
13. marts 2004 - 11:39 #21
Fik løst problemet på en anden måde, men lidt points gives der for den hjælp jeg fik...
Avatar billede jakobclausen Nybegynder
14. marts 2004 - 09:46 #22
Du må meget gerne skrive hvordan du fik det løst, tak!
Avatar billede tlunde Nybegynder
14. marts 2004 - 09:49 #23
Vi droppede måden med at uploade billeder gennem formen, og så uploader vi bare billederne manuelt, og skriver linket til filen ind i et felt i formen. Det fungere udmærket, og gør jo det samme som uploadsideen...
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