Avatar billede need4speed Nybegynder
09. juni 2002 - 18:06 Der er 11 kommentarer og
1 løsning

Indsættelse af billede

Okay jeg skal bruge en form som indsætter et billede ind i min mysql database. Er der en som kan hjælpe mig med det? Altså helt ind i mysql databasen og ikke bare et link til hvor filen ligger på serveren.
Avatar billede medions Nybegynder
09. juni 2002 - 23:35 #1
http://www.phpbuilder.com/columns/florian19991014.php3
<SCRIPT TYPE="text/javascript" LANGUAGE="javascript">
   
            <!--             
            function checkfields(denne_form) {
                if ( denne_form.sti.value,denne_form.alt.value,denne_form.fra.value == ""){
                  alert("Udfyld alle felter");
                    denne_form.fra.focus();           
                    return false;       
                }
            }
            -->
</SCRIPT>
</head>

<BODY
<H1>Tilføj billeder</H1>
<DIV ALIGN="center">
<?php
    echo"<H2>Billed tilføjet!</H2>";
if (isset($userfile)) {
$file = $userfile_name;
    $db = mysql_connect("localhost", "", "");
    mysql_select_db("", $db);
mysql_query("INSERT INTO myimage(sti, alt, fra) VALUES('$file','$alt','$fra')") || die(mysql_error());
copy("$userfile", "../Billeder/data/$userfile_name")
or die("Kunne ikke kopiere filen!");
}
?> 
<FORM ENCTYPE="multipart/form-data" ACTION="<? echo $PHP_SELF; ?>" NAME="f1" METHOD="POST">

<TABLE WIDTH="60%" BORDER="0">
<TR>
    <TD COLSPAN="2"><H2>Tilføj</H2></TD>
</TR>
<TR>
    <TD><B>Fra</B></TD>
    <TD><INPUT VALUE="<? if($fra){echo"$fra";} ?>" TYPE="text" NAME="fra"></TD>
</TR>
<TR>
    <TD><B>Sti til lille billed:</B></TD>
    <TD><INPUT TYPE="file" NAME="userfile"></TD>
</TR>
<TR>
<TR>
    <TD><B>Alternativ tekst:</B></TD>
    <TD><INPUT TYPE="text" NAME="alt"></TD>
</TR>
<TR>
    <TD COLSPAN="2"><INPUT STYLE="width:100px;" TYPE="submit" VALUE="Tilføj" NAME="f1">
    </TD>
</TR>
</TABLE>
</FORM>
<?    $db = mysql_connect("localhost", "user1124", "");
    mysql_select_db("", $db);
($foresp = mysql_query("SELECT * FROM myimage ORDER BY id DESC LIMIT 0,1")) || die(mysql_error());

$numrows = mysql_num_rows($foresp);
if ($numrows > 0){
while($data = mysql_fetch_array($foresp)){
echo"<TABLE BORDER=\"0\">
<TR>
    <TD><H2>Fra: $data[2]</H2></TD>
</TR>
<TR>
    <TD><IMG SRC=\"../Billeder/data/$data[3]\" ALT=\"$data[1]\"></TD>
</TR>
</TABLE>";
}}
else{
echo"<H2>Der er ikke gemt nogle billeder!</H2>";
}
?>
</DIV>

Her har du lidt at arbejde med...

//>Rune
Avatar billede tmceu Praktikant
10. juni 2002 - 09:23 #2
Jeg har en trang til at kommentere din fremgangsmåde :-)

Dit spørgsmål indikerer at du kender alternativet til ovenstående, men kender du også konsekvenserne af de 2 metoder ?

Den bedste måde at få dårlig performance i sin database på, er ved at gemme en masse binære data som billeder, og hive dem ud af databasen, hver gang de skal vises. Det er performancemæssigt, meget bedre at lade filsystemet håndterer billeder og så blot have adressen i databasen.
Avatar billede need4speed Nybegynder
10. juni 2002 - 17:58 #3
Kender got forskellen men synes altså siden virker hurtigere via denne metode. Ved godt det kan diskuteres.. men nu vil jeg lige se det med egen øjne :)
Avatar billede need4speed Nybegynder
10. juni 2002 - 19:09 #4
Jeg kan ikke få dig til at skrive koden til tabellen?
Avatar billede need4speed Nybegynder
11. juni 2002 - 17:08 #5
hallo...
Avatar billede need4speed Nybegynder
11. juni 2002 - 17:08 #6
Har prøvet scriptet på phpbuilder samt den table de har brugt men de sætter intet ind desværre.
Avatar billede muddi Praktikant
11. juni 2002 - 20:21 #7
Har du fileupload aktiveret på din server?
Avatar billede need4speed Nybegynder
11. juni 2002 - 21:24 #8
Den er hvis ikke slået til det var derfor jeg ville gøre det på denne måde. Men hvordan slåes den til?
Avatar billede muddi Praktikant
12. juni 2002 - 07:18 #9
Har du selv serveren, eller har du lejet dig ind på et webhotel?
Avatar billede ztyxx Nybegynder
12. juni 2002 - 15:41 #10
nu har jeg efterhånden set at der er flere der siger at det giver dårlig performance at gemme billeder i sin db, men hvad er forskellen på et billede på eks. 400kb, og en tekst på 400kb, hvad er det der giver den dårlige performance, jeg kunne godt tænke mig noget dokumentation, da de steder jeg har set det omtalt på eksperten ikke er fulgt op med dokumentation, men blot udsagn om at det er sådan..
Avatar billede need4speed Nybegynder
12. juni 2002 - 18:48 #11
JEg har min side hos en ven som styre et webhotel. Men de ved åbentbart ikke hvordan man aktivere funktionen :( Har du løsningen?
Avatar billede muddi Praktikant
13. juni 2002 - 07:31 #12
Sæt bare file_uploads = On i php.ini... du kan også se hvad indstillingen er ved at bruge phpinfo() og se under PHP Core, der hvor der står file_uploads!
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