image invoegen in mijn mysql database
Weer een vraagje!
Hoe kan ik een image toevoegen aan mijn mysql database, en die daar dan in opslagen?
vb: Je uploadt een foto over de eifel toren en die foto moet dan worden opgeslagen in een mysql database...
Ik heb al een record in mijn database gemaakt.
Quote:
img varchar(255) latin1_swedish_ci
Nu is mijn vraag, HOE moet ik een image uploaden naar mijn database, en hoe kan ik hem dan laten zien op mijn website?
Alvast Bedankt!
- Robbe
Volgensmij moet je je image uploaden naar je ftp als het ware en dan de link in de database zetten...
Die hebben geen toegang tot de server. Het moet echt vanop de website zelf allemaal gebeuren.
- Robbe
Toevoeging op 16/03/2014 18:21:56:
http://phptuts.nl/view/12/ -> een voorbeeldje van een upload script en dan doe je simpel weg INSERT INTO ....(url) VALUE($_FILES["file"]["name"]) dan krijg je iets zoals 00.jpg in de db en als je het eruit wil halen doe je
Code (php)
1
2
3
2
3
<?php file2 = mysqli_query($con, "SELECT url FROM ... WHERE id="..."");
$file = mysqli_fetch_array($file2, MYSQLI_BOTH); ?>
<img src="images/".$file['url'].""/>
$file = mysqli_fetch_array($file2, MYSQLI_BOTH); ?>
<img src="images/".$file['url'].""/>
Gewijzigd op 16/03/2014 18:27:30 door nick kuijpers
En kun je mij beetje op weg zetten?
Is dat boven je op weg helpen of mooet ik iets duidelijker zijn ;p zoja in wat
Bij <img src="images/ ....." die images dat moet toch de map zijn, waar alle foto's op de ftp server moeten worden opgeslagen eh?
Vraag 1: jup vraag 2: inderdaad!
En om je opweg te helpen in mijn oude scripten vond ik nog zo'n upload bestandje ik teste hem even ik kreeg een eregi fout maar voor de rest deed alles het
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
<?php
session_start();
$con = mysqli_connect('localhost', 'db_naam','db_ww', 'db');
if(mysqli_connect_errno())
{
echo "Failed to connect to Mysql: ".mysqli_connect_error();
}
}?>
<?php if(!empty($_POST['upload'])){
$locatie="images/pictures/"; //of een andere map, vergeet niet de w-rechten
if(is_uploaded_file($_FILES['afbeelding']['tmp_name']))
{
//controleer grootte
if($_FILES['afbeelding']['size']>3221225472)
{ //bepaal zelf de max. grootte in bytes
echo "Het bestand is te groot";
exit;
}
if(!move_uploaded_file($_FILES['afbeelding']['tmp_name'],
$locatie.$_FILES['afbeelding']['name']))
{
echo" het bestand kan niet worden verplaatst";
exit;
}
$toevoegen ='INSERT INTO `foto`(`img`, `soort`) VALUES ('.$_FILES['afbeelding']['name'].', '.$_FILES['afbeelding']['type'].')';
$add = mysql_query($toevoegen);
echo "Uw bestand ".$_FILES['afbeelding']['name']." is geupload<br /><br /><img src='images/pictures/".$_FILES['afbeelding']['name']."' align='left'>Url: <input type='text' value='domein.nl/images/pictures/".$_FILES['afbeelding']['name']."'>";
}
else
{
echo "Het uploaden is mislukt";
}
}
else{
?>
<form method="post" action="" enctype="multipart/form-data">
<!--Bepaal zelf de maximale grootte in bytes -->
Hier kun je een afbeelding uploaden->maximaal 3 mb groot!
<input type="file" name="afbeelding"><br>
<input type="submit" name="upload" value="Upload!">
</form>
<?php
}
?>
session_start();
$con = mysqli_connect('localhost', 'db_naam','db_ww', 'db');
if(mysqli_connect_errno())
{
echo "Failed to connect to Mysql: ".mysqli_connect_error();
}
}?>
<?php if(!empty($_POST['upload'])){
$locatie="images/pictures/"; //of een andere map, vergeet niet de w-rechten
if(is_uploaded_file($_FILES['afbeelding']['tmp_name']))
{
//controleer grootte
if($_FILES['afbeelding']['size']>3221225472)
{ //bepaal zelf de max. grootte in bytes
echo "Het bestand is te groot";
exit;
}
if(!move_uploaded_file($_FILES['afbeelding']['tmp_name'],
$locatie.$_FILES['afbeelding']['name']))
{
echo" het bestand kan niet worden verplaatst";
exit;
}
$toevoegen ='INSERT INTO `foto`(`img`, `soort`) VALUES ('.$_FILES['afbeelding']['name'].', '.$_FILES['afbeelding']['type'].')';
$add = mysql_query($toevoegen);
echo "Uw bestand ".$_FILES['afbeelding']['name']." is geupload<br /><br /><img src='images/pictures/".$_FILES['afbeelding']['name']."' align='left'>Url: <input type='text' value='domein.nl/images/pictures/".$_FILES['afbeelding']['name']."'>";
}
else
{
echo "Het uploaden is mislukt";
}
}
else{
?>
<form method="post" action="" enctype="multipart/form-data">
<!--Bepaal zelf de maximale grootte in bytes -->
Hier kun je een afbeelding uploaden->maximaal 3 mb groot!
<input type="file" name="afbeelding"><br>
<input type="submit" name="upload" value="Upload!">
</form>
<?php
}
?>
Hoop dat je iets hebt en leert aan dit oude script ;) de eregi fout kan ik nu niet oplossen
Ik zal hem vanavond of morgen eens bekijken :)
Toevoeging op 16/03/2014 19:07:50:
Code (php)
1
2
3
2
3
<?php file2 = mysqli_query($con, "SELECT url FROM ... WHERE id="..."");
$file = mysqli_fetch_array($file2, MYSQLI_BOTH); ?>
<img src="images/".$file['url'].""/>
$file = mysqli_fetch_array($file2, MYSQLI_BOTH); ?>
<img src="images/".$file['url'].""/>
--> Bij de
De vraag was dacht ik om de foto zelf in de database te plaatsen, ik denk dat je dan al moet beginnen met het datatype blob i.p.v. met varchar255
Dan kan ik nog per user de url aanpassen :)
Dat is het belangrijkste
Webmaster Robbe op 16/03/2014 18:42:06:
Dit gaat sowieso nooit werken je roept $file['url'] buiten de PHP aan daarnaast snap ik niet waar images/ niet is opgenomen in $file['url'].
Het is het beste om de afbeelding inderdaad op de FTP te zetten. In de MySQL database kan wel maar is niet aan te raden.
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
2
3
4
5
6
7
8
9
10
11
12
13
14
$uploadlogo = '/xampp/htdocs/hotel/images/upload/logos/';
$uploadfilelogodir = $uploadlogo . basename($_FILES['logo']['name']);
$logodir = move_uploaded_file($_FILES['logo']['tmp_name'], $uploadfilelogodir);
$uploadfilelogo = basename($_FILES['logo']['name']);
$logo = move_uploaded_file($_FILES['logo']['tmp_name'], $uploadfilelogo);
$uploadimages = '/xampp/htdocs/hotel/images/upload/images/';
$uploadfileimagesdir = $uploadimages . basename($_FILES['picture']['name']);
$picturedir = move_uploaded_file($_FILES['picture']['tmp_name'], $uploadfileimagesdir);
$uploadfileimages = basename($_FILES['picture']['name']);
$picture = move_uploaded_file($_FILES['picture']['tmp_name'], $uploadfileimages);
$uploadfilelogodir = $uploadlogo . basename($_FILES['logo']['name']);
$logodir = move_uploaded_file($_FILES['logo']['tmp_name'], $uploadfilelogodir);
$uploadfilelogo = basename($_FILES['logo']['name']);
$logo = move_uploaded_file($_FILES['logo']['tmp_name'], $uploadfilelogo);
$uploadimages = '/xampp/htdocs/hotel/images/upload/images/';
$uploadfileimagesdir = $uploadimages . basename($_FILES['picture']['name']);
$picturedir = move_uploaded_file($_FILES['picture']['tmp_name'], $uploadfileimagesdir);
$uploadfileimages = basename($_FILES['picture']['name']);
$picture = move_uploaded_file($_FILES['picture']['tmp_name'], $uploadfileimages);
En dan moet je daarna de variable $uploadfileimages opslaan in de database dat is dan zeg maar de naam...
En dan voor het aanvragen moet je dus nog wel de hele path aanvragen.
Gewijzigd op 17/03/2014 11:43:50 door Mathieu Posthumus
In $_FILES['picture']['error'] staat dan een ErrorID vermeld.
Mathieu Posthumus op 17/03/2014 11:20:39:
Ik ben zelf ook bezig met een script waar je een foto moet uploaden en werkt bij gewoon super...
En dan moet je daarna de variable $uploadfileimages opslaan in de database dat is dan zeg maar de naam...
En dan voor het aanvragen moet je dus nog wel de hele path aanvragen.
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
2
3
4
5
6
7
8
9
10
11
12
13
14
$uploadlogo = '/xampp/htdocs/hotel/images/upload/logos/';
$uploadfilelogodir = $uploadlogo . basename($_FILES['logo']['name']);
$logodir = move_uploaded_file($_FILES['logo']['tmp_name'], $uploadfilelogodir);
$uploadfilelogo = basename($_FILES['logo']['name']);
$logo = move_uploaded_file($_FILES['logo']['tmp_name'], $uploadfilelogo);
$uploadimages = '/xampp/htdocs/hotel/images/upload/images/';
$uploadfileimagesdir = $uploadimages . basename($_FILES['picture']['name']);
$picturedir = move_uploaded_file($_FILES['picture']['tmp_name'], $uploadfileimagesdir);
$uploadfileimages = basename($_FILES['picture']['name']);
$picture = move_uploaded_file($_FILES['picture']['tmp_name'], $uploadfileimages);
$uploadfilelogodir = $uploadlogo . basename($_FILES['logo']['name']);
$logodir = move_uploaded_file($_FILES['logo']['tmp_name'], $uploadfilelogodir);
$uploadfilelogo = basename($_FILES['logo']['name']);
$logo = move_uploaded_file($_FILES['logo']['tmp_name'], $uploadfilelogo);
$uploadimages = '/xampp/htdocs/hotel/images/upload/images/';
$uploadfileimagesdir = $uploadimages . basename($_FILES['picture']['name']);
$picturedir = move_uploaded_file($_FILES['picture']['tmp_name'], $uploadfileimagesdir);
$uploadfileimages = basename($_FILES['picture']['name']);
$picture = move_uploaded_file($_FILES['picture']['tmp_name'], $uploadfileimages);
En dan moet je daarna de variable $uploadfileimages opslaan in de database dat is dan zeg maar de naam...
En dan voor het aanvragen moet je dus nog wel de hele path aanvragen.
Bedankt!
Ik ga als ik klaar ben met school, eens naar dit scriptje kijken!
--> Zal nog laten weten of het gelukt is!
- Robbe