En fait g voulu créer ce code parce-que je voulais faire un diaporama d'image et pouvoir ajouter des commentaires sur l'image, du text, une date... En plus de ca vous pouvez ajouter un cathégorie pour l'image.
Source / Exemple :
<%@ Page Language="VB" Debug="True" %>
<%@ import Namespace="System" %>
<%@ import Namespace="System.IO" %>
<%@ import Namespace="System.Data" %>
<%@ import Namespace="System.Data.OleDb" %>
<script runat="server">
Dim URLPhoto As String
Dim Cat As String
Dim connBD As OleDbConnection
Dim commSQL As OleDbCommand
Dim intNBEnregistrementsMod As Integer
Dim drLecture As OleDbDataReader
Dim i As Integer
Dim Cpt As Integer
Dim Tableau() As String
Dim Flag As Integer = 1
Dim NBPhoto As Integer
Sub Page_Load(sender As Object, e As EventArgs)
Cat = Request.QueryString("cat")
reDim Tableau(1000)
Try
connBd = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("diapo.mdb"))
connBD.Open()
commSQL = new OleDbCommand("SELECT * FROM tblPhoto ORDER BY URL_Photo", connBD)
drLecture = commSQL.ExecuteReader()
Catch ex As Exception
Response.Write(ex.toString)
connBD.Close()
Response.End()
End Try
While drLecture.Read()
Tableau(Cpt) = drLecture("URL_Photo")
Cpt = Cpt + 1
End While
i = 0
connBD.Close()
Try
connBD = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("diapo.mdb")) ' Chemin de la BD
connBD.Open() ' Nouvelle connexion sur la BD
Dim dirs As String() = Directory.GetFiles("c:\inetpub\wwwroot\dario_vujica_3ein\e-diaporama\photos") ' Dossier des photos
Dim dir As String ' Variable du chemein du fichier
For Each dir In dirs
URLPhoto = Mid(dir, 57, Len(dir)) ' Sépare le nom de la photo du chemin complet de la photo
For i=0 to Cpt
If URLPhoto = Tableau(i)
Flag = 0
End If
Next
If URLPhoto <> "Thumbs.db" ' Test si il y a un fichier system dans le répertoire
If Flag = 1
commSQL = new OleDbCommand("INSERT INTO tblPhoto (URL_Photo, num_tblCat, Date_Photo) VALUES('" & URLPhoto & "','" & Cat & "','" & now() & "')", connBD) ' REQ SQL qui ajoute le nom de la photo dans la table
intNBEnregistrementsMod = commSQL.ExecuteNonQuery() ' Execution la REQ en dernière position
NBPhoto = NBPhoto + 1
End If
End If
Flag = 1
Next
connBD.Close() ' Fermeture de la connexion
Catch ex As Exception
Response.Write(ex.toString) ' Retourne l'erreur si erreur
connBD.Close() ' Fermeture de la connexion
Response.End()
End Try
End Sub
</script>
<!-- J'en ai eu marre d'attendre les mail alors voilà la source fini avec le traitement des dimension !! -->
<!--
Cette page récupère la cahtégorie voulut
Se connect à une BD et ajoute les valeurs de la table de celle-ci dans un tableau
Scan un dossier remplit de photos
Vérifie si la photo scané est déjà présente dans la table
Si elle n'y est pas alors elle ajoute la photo dans la table
-->
<%@ Page Language="VB" Debug="True" %>
<%@ import Namespace="System" %>
<%@ import Namespace="System.IO" %>
<%@ import Namespace="System.Data" %>
<%@ import Namespace="System.Data.OleDb" %>
<%@ Import Namespace="System.Drawing.Drawing2D" %>
<%@ Import Namespace="System.Drawing" %>
<script runat="server">
Dim URLPhoto As String
Dim URLDossier As String
Dim Cat As String
Dim connBD As OleDbConnection
Dim commSQL As OleDbCommand
Dim intNBEnregistrementsMod As Integer
Dim drLecture As OleDbDataReader
Dim i As Integer
Dim Cpt As Integer
Dim Tableau() As String
Dim Flag As Integer = 1
Dim NBPhoto As Integer
Dim NewImage As System.Drawing.Image
Dim ImageHaut As Integer
Dim ImageLarg As Integer
Sub Page_Load(sender As Object, e As EventArgs)
Cat = Request.QueryString("cat") ' Récupère la cathégorie
reDim Tableau(1000000) ' Redimensionne le tableau é 1000
' Connexion à la base de donnée
Try
connBd = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("diapo.mdb"))
connBD.Open()
commSQL = new OleDbCommand("SELECT * FROM tblPhoto ORDER BY URL_Photo", connBD)
drLecture = commSQL.ExecuteReader()
Catch ex As Exception
Response.Write(ex.toString)
connBD.Close()
Response.End()
End Try
' Boucle qui ajoute les photos déjé présente dans la table dans un tableau
While drLecture.Read()
Tableau(Cpt) = drLecture("URL_Photo")
Cpt = Cpt + 1
End While
i = 0 ' Remet i à 0 pour prochaine utilisateion
connBD.Close()
' Connexion à la base de donnée
Try
connBD = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("diapo.mdb")) ' Chemin de la BD
connBD.Open() ' Nouvelle connexion sur la BD
Dim dirs As String() = Directory.GetFiles("c:\inetpub\wwwroot\dario_vujica_3ein\e-diaporama\photos") ' Dossier des photos
Dim dir As String ' Variable du chemein du fichier
For Each dir In dirs
URLPhoto = Replace(Mid(dir, 57, Len(dir)),"'","''") ' Sépare le nom de la photo du chemin complet de la photo
For i=0 to Cpt ' Boucle de 0 au nombre de photos dans le tableau
If URLPhoto = Tableau(i) ' Test si la photo récupéré dans le dossier et dj présente
Flag = 0 ' Si oui on mais le flag à 0
End If
Next
If URLPhoto <> "Thumbs.db" ' Test si il y a un fichier system dans le répertoire
If Flag = 1 ' Test si le flag est à 1
NewImage = system.Drawing.Image.FromFile(dir) ' Défini la varialble NewImage avec le chamin de l'image
ImageHaut = NewImage.Height ' Récupère la hauteur de l'image
ImageLarg = NewImage.Width ' Récupère la largeur de l'image
If ImageHaut > 480 OR ImageLarg > 640 ' Test si l'image est rtop grande par rapport
ImageHaut = ImageHaut / 2 ' Si oui on divise les tailles par 2
ImageLarg = ImageLarg / 2
If ImageHaut > 480 OR ImageLarg > 640
ImageHaut = ImageHaut / 2 ' Si oui on divise les tailles par 2
ImageLarg = ImageLarg / 2
End If
End If
commSQL = new OleDbCommand("INSERT INTO tblPhoto (URL_Photo, num_tblCat, Date_Photo, Larg_Photo, Haut_Photo) VALUES('" & URLPhoto & "','" & Cat & "','" & now() & "','" & ImageLarg & "','" & ImageHaut & "')", connBD) ' REQ SQL qui ajoute le nom de la photo dans la table
intNBEnregistrementsMod = commSQL.ExecuteNonQuery() ' Execution la REQ en dernière position
NBPhoto = NBPhoto + 1 ' On incrémente le nombre de photos
End If
End If
Flag = 1 ' On remet le Flag à 1 pour une prochaine utilisation
Next
Response.Redirect("admin.aspx" & "?etat=ajout" & "&nbimg=" & NBPhoto) ' Redirection avec l'etat ajout et le NB de photos ajoutées
connBD.Close() ' Fermeture de la connexion
Catch ex As Exception
Response.Write(ex.toString) ' Retourne l'erreur si erreur
connBD.Close() ' Fermeture de la connexion
Response.End()
End Try
End Sub
</script>
Conclusion :
Tout d'abord le code récupère le nom de la cathégorie
Ensuite il redimensionne le tableau à 1000 max de photos
On déclare le type de connexion et de BD
on ouvre la connexion
On execute une REG SQL qui récupère les valeur de la base de données access
Ensuite dans la boucle While on lit les donnée récupéré puis on les stock dans un tableau
Ensuite on se reconect sur la BD
------------------
On scan le dossier, on récupère juste le nom du fichier grave à la fonction Mid
Ensuite on test si le nom existe déjà dans la BD pour tous les valeur
Si oui on met le flag à 0
On test si le nom vaut Thumbs.db ( c'est un fichiers system ki viens se mettre auto si on fait pas ce test )
Ensuite si le flag est à 1 ca veut dire que l'image et pas encore dans la BD donc on la met
Ensuite on remet le flag à 1 très important parce-que sinon ca va plus ajouter d'image
Et voilà c tout con
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.