UPLOADER UN FICHIER SANS COMPOSANT V2.0

Signaler
-
cs_Wyz
Messages postés
10
Date d'inscription
jeudi 9 janvier 2003
Statut
Membre
Dernière intervention
4 mai 2005
-
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/8673-uploader-un-fichier-sans-composant-v2-0

cs_Wyz
Messages postés
10
Date d'inscription
jeudi 9 janvier 2003
Statut
Membre
Dernière intervention
4 mai 2005

AppendChunk ne fonctionne que sur les champs de type ntext ou image (taper AppendChunk dans Google).
Je n'ai par contre pas réussi à restituer le fichier uploadé après avec le code de Nix.
J'ai donc utilisé une autre solution similaire à celle-ci, sauf que le cas de la restitution a été envisagé et fonctionne (je l'ai fait fonctionner) : http://www.pscode.com/vb/scripts/ShowCode.asp?txtCodeId=7361&lngWId=4
Quelques remarques sur cette solution :
* Il faut modifier la méthode FileName dans clsField car des navigateurs comme Firefox ne retournent pas le chemin du fichier
* Je n'ai pas testé pour les listes à choix multiples
a17249
Messages postés
5
Date d'inscription
jeudi 30 janvier 2003
Statut
Membre
Dernière intervention
27 mars 2008

Je me suis créé une petite fonction qui fait ceci :
Public Function Upl2ADONew( NomDuFichier , TailleDuFichier)
'On Error Resume Next
Upl2ADONew = False
Dim MonObjRs
Set MonObjRs = CreateObject("ADODB.Recordset")
Isql ="Select * from upload"
MonObjRs.Open Isql, conn, adOpenKeyset, adLockPessimistic

MonObjRs.AddNew

MonObjRs("Data").AppendChunk VarFichierBin

' MonObjRs("DataBin").AppendChunk VarFichierBin

MonObjRs("SouceFileName") = CheminLocal & NomDuFichier
MonObjRs("Taille") = TailleDuFichier

MonObjRs("UploadDT") = Now()
MonObjRs.Update


MonObjRs.Close
Set MonObjRs = Nothing

If Err.Number <> 0 Then
Response.Write "Erreur lors de la sauvegarde du fichier en base du/des fichier(s) :
" & vbCrLf & Err.Description & "
"
Exit Function
End If
Upl2ADONew = True
End Function

Mais ça marche uniquement si c'est un champ destination de type image; or, je voulais le stocker dans un champ de type varbinary.
Pourquoi n'est-ce pas possible ?
Si j'essaie d'écrire dans un champ varbinary, j'obtiens l'erreur :

ADODB.Field error '800a0c93'

L'opération demandée n'est pas autorisée dans ce contexte.

What is the problem ??!!
cs_Wyz
Messages postés
10
Date d'inscription
jeudi 9 janvier 2003
Statut
Membre
Dernière intervention
4 mai 2005

A17249 > Il suffit de stocker le code binaire du fichier que tu obtiens avec ce script dans un champs de type binaire dans ta base...
a17249
Messages postés
5
Date d'inscription
jeudi 30 janvier 2003
Statut
Membre
Dernière intervention
27 mars 2008

Le code est super et marche très bien chez moi mais je n'arrive pas à ajouter une fonction qui marche vraiment bien pour stocker le fichier dans une base de données en lieu et place de la sauvegarde sur disque. Quelqu'un pourrait-il m'aider ?? car apparemment, je ne suis pas la seule à avoir ce genre de préoccupation mais je ne trouve aucune réponse valable !
Merci d'avance.