Afbeeldinglink + uploadsysteem aan een artikel gerelateerd

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Pagina: 1 2 volgende »

Robby Alexander

Robby Alexander

01/06/2011 22:20:12
Quote Anchor link
Hey guys,

Heb flink wat onderzoek gedaan op google en php forums, maar ik ga het toch hier vragen hoe het zit.
heb namelijk flink van dit soort http://bit.ly/lVPSMB dingen gezocht maar weet nog steeds niet wat juist is.

Ik heb op dit moment artikelen in mijn db en wil er graag een foto-upload systeem aan koppelen die de link in de db zet. wanneer ik een artikel opvraag dat hij de juiste foto erbij pakt.
 
PHP hulp

PHP hulp

21/11/2024 22:32:39
 
- SanThe -

- SanThe -

01/06/2011 22:22:53
Quote Anchor link
En wat is het probleem?
 
Robby Alexander

Robby Alexander

01/06/2011 22:24:59
Quote Anchor link
ik weet niet hoe dit werkt. is er op onze phphulp een goede script die bij mijn probleem past?
 
Arjan -

Arjan -

02/06/2011 00:27:58
Quote Anchor link
Zoek en gij zult vinden...
 
Robby Alexander

Robby Alexander

02/06/2011 11:47:52
Quote Anchor link
ja ik heb het nu heel dom opgelost. door altijd het bestand dezelfde nummer te geven als de ID nummer, en als ik dan img src= . $ID . doe dan pas vind hij hem... maar ik weet niet waar ik moet zoeken waar ik een voorbeeldje kan vinden... nergens op internet staat een duidelijk antwoord

Toevoeging op 02/06/2011 13:14:09:

stel ik heb deze code. HOE moet ik de bestandsnaam aan een desbetreffende ID koppelen in de database?? ik wil een regeltje maken met:
pak de bestandsnaam en zet deze in mijn tabel:

ID NAAM URL

Code (php)
PHP script in nieuw venster Selecteer het PHP script
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
52
53
54
$allowed = array('jpg', 'jpeg', 'gif', 'doc');
$dir = 'photos/';
$maxsize = 150000000;

if($_SERVER['REQUEST_METHOD'] == 'POST')
{
    if(is_uploaded_file($_FILES['bestand']['tmp_name']))
    {
        $pathinfo = pathinfo($_FILES['bestand']['name']);
        if(in_array($pathinfo['extension'], $allowed))
        {
            $file = $_FILES['bestand']['name'];
            
            if($_FILES['bestand']['size'] < $maxsize)
            {
                if(move_uploaded_file($_FILES['bestand']['tmp_name'], $dir.$file))
                {
                    $content[] = '<p>The Picture '.$file.' is succesfully uploaded.</p>';
                }
                else
                {
                    $errors[] = '<p>Er is iets fout gegaan tijdens het uploaden</p>';
                }
            }
            else
            {
                if($maxsize == 0)
                {
                    $errors[] = '<p>Het uploaden van bestanden is uitgeschakeld</p>';
                }
                else
                {
                    $errors[] = '<p>Het bestand is te groot.</p>';
                }
            }
        }
        else
        {
            $errors[] = '<p>Deze extensie is niet toegestaan!</p>';
        }
    }
    else
    {
        $errors[] = '<p>Er is geen bestand opgegeven</p>';
    }
}

                          <form action="#" method="post" id="upload" enctype="multipart/form-data">
                            <p>
                              <label class="field" for="bestand">Add Picture</label>
                              <br>
                              <input type="file" name="bestand" id="bestand" />
                              <input type="submit" value="Upload" />
                          </form>


Toevoeging op 02/06/2011 21:57:00:

als ik heb upgeload hoe moet ik dan ervoor zorgen dat de bestandsnaam naar een tabel wordt geschreven ?????
 
Robby Alexander

Robby Alexander

04/06/2011 14:56:27
Quote Anchor link
jammer zeg dat niemand het weet.
Weetje wat ik ga doen, ik ga overal op dit forum reageren met:

Zoek en gij zult vinden... super forum.


PHPhulp tolereert dit soort reacties niet! Ik heb er al drie van je verwijderd. Laat dit niet meer gebeuren!

Niels
[/modedit]
Gewijzigd op 04/06/2011 16:05:10 door Niels K
 
TNG -

TNG -

04/06/2011 15:11:14
Quote Anchor link
wat voor database is het en hoe ziet hij er uit
 
Robby Alexander

Robby Alexander

04/06/2011 16:28:25
Quote Anchor link
Mijn database ziet er als volgt uit:

Artikelen
id - artikelnaam - comment - categorie

Categorie
id - categorienaam - comment - photo_url

stel dat ik upload klik dat de gekozen bestandsnaam naar photo_url wordt geschreven

Toevoeging op 04/06/2011 16:39:02:

Hartelijk dank voor de interesse om me te helpen
 
TNG web

TNG web

04/06/2011 16:43:19
Quote Anchor link
je moet toch wat specefieker zijn gozer,
- hoe moet het systeem weten waar de photo_url moet worden weg geschreven
- wat voor CMS heb je
 
Robby Alexander

Robby Alexander

04/06/2011 18:05:56
Quote Anchor link
mijn excuses, ik wist niet welke informatie je wilde hebben.
ik wil graag dat als ik een foto upload, dat de bestandsnaam wordt opgeslagen.
Stel ik heb dit:

id - naam - photo_url
1 - artikel - bestandsnaam.jpg

ik heb handmatig een aantal photo_url/bestandsnamen in mysql geplaatst via phpmyadmin en hij laat dan wel de bijbehorende foto's zien die bij dat artikel hoort. Nu wil ik een foto uploaden dus stel ik zeg: id = 1 en ik kies mijn bestand en klik dan op upload.



vraag 2: wat voor CMS heb je.
Ik draai enkel eigen geschreven scripts op een php/mysql server lokaal.
Geen opensource cms of dergelijke.
 
Vincent Huisman

Vincent Huisman

04/06/2011 18:10:23
Quote Anchor link
gewoon voor/na het moveuploadedfile een query uitvoeren en daar de bestandnaam in zetten
 
Christiaan de kleine

christiaan de kleine

04/06/2011 20:50:04
Quote Anchor link
Ik heb nog wel een scriptje hierbvoor:

kies je bestandsnaam en klik op uploaden en hij zet de link naar de afbeelding in de database.

zal hem morgen even posten voor je!
 
- Ariën  -
Beheerder

- Ariën -

04/06/2011 21:01:23
Quote Anchor link
Best wel basic... Bekijk eens je $_FILES array met print_r(). Daar vind je de huidige bestandsnaam....
 
Robby Alexander

Robby Alexander

04/06/2011 22:29:48
Quote Anchor link
christiaan dat zou heel erg fijn zijn alvast hartelijk dank.
- aar - ik weet dat het basic is, alleen ik weet nog niet hoe ik dit het beste kan doen. sorry.
 
- Ariën  -
Beheerder

- Ariën -

05/06/2011 15:45:58
Quote Anchor link
Al gekeken naar php.net/print_r ?

Het is wel basic, maar zelf even op php.net kijken hoe een functie werkt lijkt me weinig moeite ;-)...
 
TNG -

TNG -

05/06/2011 15:48:54
Quote Anchor link
hij moet kijken naar de mysql update functie en dan bij photo url: $_FILES['bestand']['name']
 
- Ariën  -
Beheerder

- Ariën -

05/06/2011 15:52:32
Quote Anchor link
inderdaad, dat zou je uit de array van print_r dan op moeten maken.
 
Christiaan de kleine

christiaan de kleine

05/06/2011 17:33:38
Quote Anchor link
mijn systeem hiervoor: (het is niet helemaal safe, maar dat kan jezelf aanpassen!)

//filter.php

Code (php)
PHP script in nieuw venster Selecteer het PHP script
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
<?php
#Filter.php
#
# Je kan deze functie zelf verder uitbreiden door
# de functie afbeeldingen te kopiëren en aan te passen
# aan je eigen wensen.
 
# procedure geschreven door Cynthia Fridsma

// functie voor het testen van de file extensies


function afbeeldingen ($file_name)  {
   return(ereg('[]0-9a-zA-Z_[-]+(.jpg)|(.gif)|(.bmp)|(.png)|(.jpeg)', $file_name));  

}


/*

Als je de functie gaat kopieren, dan hoef je alleen de functie naam
aan te passen + de extensies. Bijvoorbeeld :

function geluid ($file_name)  {
   return(ereg('[]0-9a-zA-Z_[-]+(.mp3)|(.wav)|(.wma)|(.snd)', $file_name));  

}

*/


?>


//foto.php

Code (php)
PHP script in nieuw venster Selecteer het PHP script
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
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
<?php
include ("../includes/connect.php");
session_start();

    // Verborgen formulier veld controle:
    $Ihidden = $_POST['hidden'];
    $Chidden = "send";

if ($Ihidden === $Chidden) {
        $Iname = $_POST['Iname'];
            
    $sql = mysql_query("SELECT * FROM afbeelding WHERE omschrijving = '$Iname'");
            while ($lijst = mysql_fetch_object($sql)) {

            
                echo "
                <a href=foto.php?uit="
.$lijst->nummer." target=\"_blank\"><img src=".$lijst->afbeelding." height=\"350\" /><br>".$lijst->omschrijving."</a>
                "
;
                echo '<font color="white">Afstand!</font><br>';    
            }    
}
        
if ($_SESSION['button'] === "Picture") {
        if (empty($_SESSION['Iname'])) {
            
        }
else {
            $Sname2 = $_SESSION['Iname'];
            $sql2 = mysql_query("SELECT * FROM afbeelding WHERE omschrijving = '$Sname2'");
            while ($lijst2 = mysql_fetch_object($sql2)) {

            
                echo "
                <a href=foto.php?uit="
.$lijst2->nummer." target=\"_blank\"><img src=".$lijst2->afbeelding." height=\"150\" /><br>".$lijst2->omschrijving."</a>
                "
;
                echo '<font color="white">Afstand!</font><br>';    
            }    
        }

        if (empty($_SESSION['person'])) {
            
        }
else {
            $person2 = $_SESSION['person'];
            $sql3 = mysql_query("SELECT * FROM afbeelding WHERE omschrijving = '$person2'");
            while ($lijst3 = mysql_fetch_object($sql3)) {

            
                echo "
                <a href=foto.php?uit="
.$lijst3->nummer." target=\"_blank\"><img src=".$lijst3->afbeelding." height=\"150\" width=\"\" /><br>".$lijst3->omschrijving."</a>
                "
;
                echo '<font color="white">Afstand!</font><br>';    
            }
        
}
}

echo '<html><head><title>'.$Iname.' / '.$person2.'</title></head></html>';

if (isset($_POST['destroyd'])) {
    unset($_SESSION['button']);
    unset($_SESSION['Iname']);
    unset($_SESSION['person']);

}

?>

<form name="name" method="post" action="foto.php">
Name     <input type="text" name="Iname" onChange="document.name.submit()">
        <input type="hidden" value="send" name="hidden"><BR>
<input type="submit" name="destroyd" value="Session destroy">
</form><P>
<?php include("../includes/navbar.php"); ?>


en als laatste:

//upload_afbeeldingen.php

Code (php)
PHP script in nieuw venster Selecteer het PHP script
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
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
<?php
# De verwerking van de gegevens doen we gewoon
# met een eenvoudig formulier.

# Procedure geschreven door Cynthia Fridsma

// verbind de server

include("../includes/connect.php");

// gebruik het filter voor de afbeeldingen
include ("filter.php");

// lees de waarde van 'go'
$go = $_POST['go'];


# als het formulier nog niet eerder is gebruikt dan
# wordt er een formulier getoond op je scherm.


if ($go ==""):

?>

<br><br><br>
<form name="form1" method="post" action="<?php $_SERVER['PHP_SELF']; ?>" enctype="multipart/form-data">

<!-- Hier komt het verborden veld 'go met de waarde 'go' -->
   <input name="go" type="hidden" value="go">
       <table width="450" border="0" bgcolor="#99CCFF" align="center">
       <tr><td bgcolor="#99CCFF">Omschrijving</td>
       <td><input name="omschrijving" type="text" id="omschrijving" size="50"></td>
    </tr>
    <tr>
      <td bgcolor="#99CCFF">Afbeelding</td>
      <td><input name="afbeelding" type="file" accept="image/jpeg" id="afbeelding" size="50">
  
    </tr>
    <tr>
      <td bgcolor="#99CCFF">&nbsp;</td>
      <td><input type="submit" name="Submit" value="Verzenden">
      <input type="reset" name="Reset" value="Herstellen"></td>
    </tr>
  </table>
  <p>&nbsp;</p>
</form>

<?php
endif;

// Deze procedure wordt aangeroepen nadat men op verzenden heeft gedrukt

if ($go =="go"):
# Deze procedure zordt ervoor dat de afbeeldingen
# op je server worden geplaatst en tevens in je
# mysql database.

// bepaal de huidige directory

$hello = getcwd();

# hier komen de afbeeldingen, als je
# het script in de directory hallo hebt geinstalleerd
# dan worden de afbeeldingen in hallo/images/
# geplaatst.


$file_dir = ($hello . "/images/");

# we moeten natuurlijk wel zeker weten
# dat de directory bestaat. Dit controleren wij
# met de opdracht is_dir via de volgende routine :


if (is_dir ($file_dir)) {
  print "<br><br>++directorty bestaat";  
  }
  else {  
  print "<br><br>--Directory bestaat nog niet" . $file_dir;  
    $newpage = $file_dir;
    echo ("<br>we gaan daarom de directory aanmaken");
    mkdir ($newpage, 0777);    
  }
  

// toon de systeem datum
echo date("m/d/y G.i:s");


echo ("<br><br>");

# Ik heb besloten om $_FILES als een array te
# laden, zodat je (eventueel) meer afbeeldingen via
# een formulier op je server kunt plaatsen.


foreach($_FILES as $file_name => $file_array) {
      
       # Verander de bestandsnaam zodat het een geldig bestandsnaam wordt
       # in een Linux omgeving. (Een Mac en een Windows omgeving zijn
       # veel relaxer met bestandsnaam m.b.t. spaties, hoofdletters en
       # een mengeling van beide, maar dit geldt niet voor Linux, bovendien
       # zijn bestanden in een Linux omgeving hoofdletter gevoelig.

      
       $file_name=str_replace("'", "_", $file_array['name']);
       $file_name=str_replace(" ", "_", $file_array['name']);
       $file_name=stripslashes ($file_name);
       $file_name=trim($file_name);      
       $file_name=strtolower($file_name);    
                
       echo "path: " .$file_array['tmp_name'] . "<br>\n";
       echo "name: " .$file_name . "<br>\n";    
       echo "type: " .$file_array['type'] ."<br>\n";
       echo "size: " .$file_array['size'] ."<br>\n";
      
       # gebruik de functie afbeeldingen (zie filter.php) om te
       # controleren of het om een afbeelding gaat.
       # de waarde van $test wordt 1 indien het een afbeelding betreft,
       # in alle andere gevallen is $test leeg.


       $test = afbeeldingen($file_name);
       if ($test !=""):
            echo $file_name . " dit is een afbeelding<br>";
            if (is_uploaded_file($file_array['tmp_name'])) {
                 move_uploaded_file($file_array['tmp_name'], "$file_dir/$file_name") or die ("Couldn't copy");
                 echo "Afbeelding staat op de server<br><br>";
                 // voeg de locatie + omschrijving van de afbeelding toe in de database
                 $afbeelding = "images/" . $file_name;
                 $query = "INSERT INTO afbeelding (nummer, omschrijving, afbeelding) VALUES ('', '$_POST[omschrijving]','$afbeelding')";    
                    if(mysql_query($query)) die(mysql_error());                      
                        echo $afbeelding . " is toegevoegd aan de database met als omschrijving : <br>";                    
                        echo $_POST[omschrijving] ;
            }
       endif;
                    
       if ($test ==""):    
             echo $file_name . " dit is geen afbeelding en wordt daarom niet op de server geplaatst<br>\n";      
       endif;
  }
endif;


?>

<P>
<?php include("../includes/navbar.php"); ?>


en de database lookup is in mijn voorbeeld:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
Tabel naam: afbeelding
rows:
nummer (A_I, primary)
omschrijving
afbeelding


hoop dat je hiermee wat kunt doen!
Gewijzigd op 05/06/2011 17:36:19 door christiaan de kleine
 
Vincent Huisman

Vincent Huisman

05/06/2011 18:11:21
Quote Anchor link
Script niet gebruiken dus... Het script is lek en je gebruikt ereg
 
Robby Alexander

Robby Alexander

06/06/2011 00:31:04
Quote Anchor link
vind het eerlijk gezegd te complex terwijl mijn script gewoon simpel checkt of het wel een geldig type, grootte, en of het er wel is checkt. en daarna upload hij de file naar de server. alleen moet ik ergens zien toe te voegen dat hij de bestandsnaam naar de geselecteerde id stuurt.
 
Vincent Huisman

Vincent Huisman

06/06/2011 13:03:01
Quote Anchor link
Vincent Huisman op 04/06/2011 18:10:23:
gewoon voor/na het moveuploadedfile een query uitvoeren en daar de bestandnaam in zetten


Wat snap jij hier niet aan, laat anders eens zien wat voor een code je tot nu toe hebt
 

Pagina: 1 2 volgende »



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.