Deplacer une image parcouru dans un serveur

perle007 Messages postés 38 Date d'inscription jeudi 29 septembre 2005 Statut Membre Dernière intervention 25 novembre 2005 - 6 oct. 2005 à 18:02
perle007 Messages postés 38 Date d'inscription jeudi 29 septembre 2005 Statut Membre Dernière intervention 25 novembre 2005 - 23 oct. 2005 à 13:06
bonjour a tous
je suis nouvelle sur le forum j'ai une question a poser je vous serez tres reconnaissante si vous me donner la reponse
alors, je travail sur un site asp sur la page ajouter.asp j'ai un formulaire qui comporte des champs parmi eux j'ai le champs image et un bouton "parcourir" je veux apres avoir selectionner la photo a vouloir ajouter en cliquant sur le bouton "ajouter" que cette photo se place sur le serveur
(je ne sais pas si je suis assez claire sur ce propos mais j'ai besoin de ce code au plutot

merci davance

43 réponses

cs_Nurgle Messages postés 1642 Date d'inscription samedi 6 novembre 2004 Statut Membre Dernière intervention 28 avril 2011 4
6 oct. 2005 à 19:30
Salut,



Si j'ai bien compris tu veux uploader un fichier depuis le poste client, sur le poste serveur



Pour cela, en asp, tu as besoin d'un composant externe. Il en existe plusieurs, les plus connus étant ASPSmartUpload et ASPUpload.



Je te renvois vers cette page où l'on explique comment utiliser le composant ASPSmartUpload :

Upload de fichiers (asp-php.net)



De plus, si tu es chez un hébergeur, tu ne peux pas installer toi même le composant , tu dois donc leur demander plutôt quels composants sont installés sur leurs serveur...



A+++

Nurgle
Il est plus aisé d'être sage pour les autres que pour soi-même ! (La Rochefoucauld)
0
perle007 Messages postés 38 Date d'inscription jeudi 29 septembre 2005 Statut Membre Dernière intervention 25 novembre 2005
7 oct. 2005 à 14:27
merci beaucoup pour ton aide
0
perle007 Messages postés 38 Date d'inscription jeudi 29 septembre 2005 Statut Membre Dernière intervention 25 novembre 2005
7 oct. 2005 à 14:44
j'espère non pas en faire trop je veux savoir ou est ce qu'on place precisement ce composant puisque j'ai la possibilité d'installer sur le serveur..
merci encore
0
cs_Nurgle Messages postés 1642 Date d'inscription samedi 6 novembre 2004 Statut Membre Dernière intervention 28 avril 2011 4
7 oct. 2005 à 17:30
Tu peux placer la dll où tu le désire...

Pour enregistrer ensuite la dll, tu dois avoir accès à l'invite de commande MS-DOS.

Ouvre la et tappe : "REGSVR32.EXE c:\undossier\aspSmartUpload.dll"



Ensuite tu pourras utiliser le composant comme indiqué dans le tutorial dont je t'ais donné le lien



voilà...


Nurgle
Il est plus aisé d'être sage pour les autres que pour soi-même ! (La Rochefoucauld)
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
perle007 Messages postés 38 Date d'inscription jeudi 29 septembre 2005 Statut Membre Dernière intervention 25 novembre 2005
7 oct. 2005 à 18:06
alors là je rencontre un prb que je ne compren pa!! deja je tiens a souligner que je suis tres debutante (c'est d'ailleurs mon tout premier site en asp)
le prb etant que l'image ne se telecharge pas sur la base de donnee il me note seulement son chemin a savoir c:\...... je te passe le code en entier (c'est une page d'ajout) voila mon code merci de me modifier ce qu'il y a a etre modifier:

<%@language="VBscript"%>
<!-- #INCLUDE FILE = "DB.inc" -->
<html>
<head>
<title>Conseil en strategie</title>
<link rel="stylesheet" type="text/css" href="/include/style_admin.css">
</head>
<%
title=Request("title")
if title = "" then
response.write("veuillez entrez un titre")
else
Set mySmartUpload = Server.CreateObject("aspSmartUpload.SmartUpload")
mySmartUpload.MaxFileSize = 1024
mySmartUpload.Upload
intCount = mySmartUpload.Save(admin_files)
if error then response.write ("error.description")
else
For each file In mySmartUpload.Files

Nom : <%=file.FileName%>

Taille : <%=file.Size%> octets

Type : <%=file.ContentType%>
<%
next
header=request.Form("header")
text=Request.Form("text")
typ="conseil"
image=Request.Form("image")
sql="insert into services_fr (service_title,service_header,service_text,service_image,service_type) values ('" & title & "','" & header & "','" & text & "','"&image&"','"&typ&"')"
objcon.execute sql
response.write("Enregistrement avec succés")
objcon.close
end if
end if
%>
%
<form method="post" action="add_conseil.asp" ENCTYPE="multipart/form-data">
titre,
,

----

resumé,
<textarea name="header" cols="30" rows="5"></textarea>,

----

corps,
<textarea name="text" cols="30" rows="5"></textarea>,

----

image,
,

----

,

</form>
0
cs_Nurgle Messages postés 1642 Date d'inscription samedi 6 novembre 2004 Statut Membre Dernière intervention 28 avril 2011 4
7 oct. 2005 à 19:15
En fait le problème vient du fait que tu ne peux pas utiliser dans la
même page à la fois Request.Form et le composant ASPSmartUpload.

Tu dois récupérer les contenus de test champs aussi via aspsmartupload.

Il y a également un deuxième problème :

Tu veux stocker le fichier sur le serveur et ensuite mettre l'url de ce fichier dans la base de données ou alors tu veux mettre l'image elle-même dans la base de donnée



Exemple :

<%

Set mySmartUpload = Server.CreateObject("aspSmartUpload.SmartUpload")

title = mySmartUpload.Form.Item("title")

if title = "" then

response.write("veuillez entrez un titre")

else

mySmartUpload.MaxFileSize = 1024

mySmartUpload.Upload

mySmartUpload.Save("/undossier/unautredossier/")

' sauvegarde du fichier

if Err then

response.write (Err.description)

' traitement des erreurs

else

header=mySmartUpload.Form.Item("header")

text=mySmartUpload.Form.Item("text")

typ="conseil"

image=mySmartUpload.Form.Files.Item(0).FileName

' récupération du nom de fichier

sql="insert
into services_fr
(service_title,service_header,service_text,service_image,service_type)
values ('" & title & "','" & header & "','" & text
& "','"&image&"','"&typ&"')"

objcon.execute sql

response.write("Enregistré avec succès")

objcon.close

end if

end if

%>



Là le code va pouvoir avoir accès au contenu des champs (comme avec
Request.Form) puis va uploader ton fichier dans le dossier
"/undossier/unautredossier/", puis va mettre le nom du fichier, et le
contenu des champs dans ta base de données.

Ne sachant pas exactement ce que tu veux faire...

voilà


Nurgle
Il est plus aisé d'être sage pour les autres que pour soi-même ! (La Rochefoucauld)
0
perle007 Messages postés 38 Date d'inscription jeudi 29 septembre 2005 Statut Membre Dernière intervention 25 novembre 2005
9 oct. 2005 à 23:42
ce dont j'ai besoin o fait c'est d'un formulaire qui comporte des champs parmi eux le champs image acoté du kel nous avons le bouton "parcourir" et nous avons deux bouton "ajouter" "annuler"
sur le serveur je veux enregistrer l'image que l'administrateur aura selectionner et non le chemin donc l image sera enregistrer ds le repertoire "admin_files" maintnant il se peut que deux images differentes aient le meme nom donc il fo fair un controle ki permettera de renommer la 2eme image au cas ou ce nom existe deja.
ke tt senregistre sur la base de donnee sql ke j'ai
voila c'est d'un formulaire avec c caracteristiques ke j besoin
est ce ke tu pe me passer le code entier.stp j'en ai besoin.
merci pour ton aide 10000...0000 merci
0
perle007 Messages postés 38 Date d'inscription jeudi 29 septembre 2005 Statut Membre Dernière intervention 25 novembre 2005
10 oct. 2005 à 12:11
je viens de tester le code que tu m'as passer,
deja voilà le chemin du dossier ou je veux stocker les images: "c:/webserver/ace/admin_files" ceci dit moi j'ai mis: "//webserver/ace/admin_files " sauf que là aussi je ne reussi pas a voir limage que j'ai selectionner ds le dossier admin_file et aussi une fois j'accede a la page .asp il me lis directement le if donc puiske les champs a l ouverture de la page sont vide il me donne le message "veuillez entrer un titre" et a la fin quand je rempli les champs il ne me donne pas le message "enregistrer avec succès"
merci beucoup de me repondre
0
perle007 Messages postés 38 Date d'inscription jeudi 29 septembre 2005 Statut Membre Dernière intervention 25 novembre 2005
10 oct. 2005 à 15:04
stp repond moi au plus tot j'ai besoin de ce code today merci beucoup
0
cs_Nurgle Messages postés 1642 Date d'inscription samedi 6 novembre 2004 Statut Membre Dernière intervention 28 avril 2011 4
10 oct. 2005 à 18:00
dans mon code, si tu fais :

mySmartUpload.Save("c:/webserver/ace/admin_files")

ça devrait fonctionner, non ?



Je précise une chose importante : IIS doit bien sûr avoir les droits d'écriture sur le dossier en question. Voir ce tutorial

sinon pour récupérer tes champs, tu fais comme c'est montré :

mySmartUpload.Form.Item("champ")




Nurgle
Il est plus aisé d'être sage pour les autres que pour soi-même ! (La Rochefoucauld)
0
perle007 Messages postés 38 Date d'inscription jeudi 29 septembre 2005 Statut Membre Dernière intervention 25 novembre 2005
10 oct. 2005 à 19:38
c bon ca a fonctionner maintenant je rencontr le prb suivant: quand j'ajoute 2 images ayant le meme nom ya la premiere qui s'ecrase donc je ve k la 2eme images soit renommer et non kil ecrase la premiere
thx a lot
0
cs_Nurgle Messages postés 1642 Date d'inscription samedi 6 novembre 2004 Statut Membre Dernière intervention 28 avril 2011 4
10 oct. 2005 à 20:08
Eh bien, il y a plusieurs solutions.

Le plus simple pour éviter ce genre de problèmes est d'attibuer un nom automatiquement.

Par exemple, après le :

mySmartUpload.Save("c:/webserver/ace/admin_files")

tu peux rajouter :

mySmartUpload.Form.Files.Item(0).SaveAs(filename)

où filename peut être égal à un truc du genre "image_" & title

Comme ça chaque image est sauvegardée avec un nom unique.

Bien sûr tu peux le faire avec n'importe quel champ de ta base (si tu
as une clé primaire, du genre un "numéro auto", je te conseille
d'utiliser celui-là).


Nurgle
Il est plus aisé d'être sage pour les autres que pour soi-même ! (La Rochefoucauld)
0
perle007 Messages postés 38 Date d'inscription jeudi 29 septembre 2005 Statut Membre Dernière intervention 25 novembre 2005
11 oct. 2005 à 13:12
j'ai inserer le code ke tu m'as donner mais il me donne erreur :
Erreur d'exécution Microsoft VBScript error '800a01b6'
Cet objet ne gère pas cette propriété ou cette méthode: 'Files'
/admin/add_conseil_action.asp, line 10

quand jenleve files et j ne léss ke save as il m di kom kwa il n reconné pas l objet
chez pas quoi faire
merci de m onner un coup d main
0
perle007 Messages postés 38 Date d'inscription jeudi 29 septembre 2005 Statut Membre Dernière intervention 25 novembre 2005
11 oct. 2005 à 16:39
au fait moi je crois qu'il faudra faire un if c'est a dire si le nom d'une image est pareil qu'un nom deja existant dans le dossier (ds ce cas admin_files) qu'il le renomme automatiquement
qu'est tu en dis?? moi je ne sais pas le code exact que je dois mettre :(:(:(
0
cs_Nurgle Messages postés 1642 Date d'inscription samedi 6 novembre 2004 Statut Membre Dernière intervention 28 avril 2011 4
11 oct. 2005 à 18:42
j'avais pensé à ça, le seul problème c'est qu'il faut utiliser le FileSystemObject !

(certains hébergeurs ne l'autorisent pas, surtout les gratuits)

Utiliser le FileSystemObjet.



J'espérait ne pas avoir à l'utiliser car ça ralentit l'exécution de ta page pour pas grand chose...mais bon

Je vais chercher si il n'y a pas un moyen de le faire directement avec l'objet AspSmartUpload.



A+++

Nurgle
Il est plus aisé d'être sage pour les autres que pour soi-même ! (La Rochefoucauld)
0
perle007 Messages postés 38 Date d'inscription jeudi 29 septembre 2005 Statut Membre Dernière intervention 25 novembre 2005
11 oct. 2005 à 21:13
oki merci de m'en chercher sinon bein dis moi comment faire FileSystemObject..merci bcppppppppppppp et stp jené besoin pour demain donc pas grave si ca ralentit le telechargement le principal c'est que ca marche
0
cs_Nurgle Messages postés 1642 Date d'inscription samedi 6 novembre 2004 Statut Membre Dernière intervention 28 avril 2011 4
11 oct. 2005 à 21:38
essaye ça :



<%

dim fs,fname

set fs=Server.CreateObject("Scripting.FileSystemObject")



if fs.FileExists("c:/webserver/ace/admin_files/" & mySmartUpload.Files(0).FileName)= false then

'tout le traitement : upload, etc...

else

Response.Write("Le fichier existe déjà ! Tant pis pour vous :P")

end if

%>



J'ai pas testé mais, de mémoire, ça doit être ça.

Bien sûr tu peux mettre ce que tu veux à la place dur Response.Write(),
tu peux demander à l'utilisateur de reposter le formulaire avec un
autre nom de fichier, ou n'importe quoi d'autre...


Nurgle
Il est plus aisé d'être sage pour les autres que pour soi-même ! (La Rochefoucauld)
0
cs_Nurgle Messages postés 1642 Date d'inscription samedi 6 novembre 2004 Statut Membre Dernière intervention 28 avril 2011 4
11 oct. 2005 à 21:40
petite correction



Ala place de :

dim fs,fname
Mettre tout simplement :

dim fs
0
perle007 Messages postés 38 Date d'inscription jeudi 29 septembre 2005 Statut Membre Dernière intervention 25 novembre 2005
11 oct. 2005 à 23:02
donc si j'ai bien compris je remplace le code que j'avais ecrit celui ou il y a mysmartupload ...etc par le code que tu viens de me donner ou quoi sinon??merciiiiiiiiiiiiiiiiiiiiii
0
perle007 Messages postés 38 Date d'inscription jeudi 29 septembre 2005 Statut Membre Dernière intervention 25 novembre 2005
12 oct. 2005 à 13:19
au fait moi je n veux pas que l'utilisateur plutot l'administrateur se rende compte que le nom de cet image image existe mais qu'il la renomme et c'est tout tu vois a quoi je veux en venir???
je desespere :'(:'(:'(:'(
merci de me tenir en aide
0
Rejoignez-nous