Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD
PHP & SGBD Forum d'entraide sur les SGBD avec PHP. Avant de poster : FAQ BDD, toutes les FAQ PHP, cours BDD et sources BDD
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 24/06/2007, 11h44   #1
Invité de passage
 
Inscription : juin 2007
Messages : 11
Détails du profil
Informations forums :
Inscription : juin 2007
Messages : 11
Points : 1
Points : 1
Par défaut Envoi d'une image sur un serveur + update table

Bonjour,
j'aimerais créer un formulaire qui comme sur les forum qui permet d'ajouter un avatar.

J'aimerais savoir ce qu'il faut que je fasse dans le formulaire.

Je pense aujourd'hui que je dois avoir un script qui me permet d'envoyer l'image dans un dossier (en faisant attention au caractères), et je dois aussi avoir un update qui permet d'enregistrer le nom de l'image dans la base de données.

J'ai essayé de modifier certains scripts d'envoi d'image, mais je n'abouti jamais,

existerait il un script qui fait cela, sinon comment dois-je m'y prendre pour ajouter un champs dans mon formulaire qui permettrait aux personnes qui veulent s'inscrire de sélectionner une image sur leur disque dur, que celle ci soit uploader sur mon serveur et que l'insertion dans le champs image de la table soit le nom de l'image.jpg

Merci d'avance pour vos conseils, votre aide et vos soluces.

ERIC


PS: ça fait un mois que j'essaie de faire cela, et je me résigne à demander de l'aide car vraiment c'est trop difficile (je débute en php)
rickways est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/06/2007, 15h28   #2
Membre actif
 
Pierre
Développeur informatique
Inscription : juin 2007
Messages : 148
Détails du profil
Informations personnelles :
Nom : Pierre
Âge : 24
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Développeur informatique

Informations forums :
Inscription : juin 2007
Messages : 148
Points : 166
Points : 166
Bonjour,

Pour l'envoie de fichier, le input type="file" est ce qu'il faut.

Pour ensuite l'envoyer sur le serveur, il n'y a rien de mieux (enfin que je sache^^) move_uploaded_file qui envoie un fichier du disque dure au serveur. Ensuite tu fais la requête SQL désiré

Je pense qu'il y a des scripts préfaits mais je ne m'en sers pas ^^
GoTrUnKo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/06/2007, 20h15   #3
Invité régulier
 
Inscription : juin 2007
Messages : 12
Détails du profil
Informations forums :
Inscription : juin 2007
Messages : 12
Points : 5
Points : 5
creé d'aport un dossier nommer upload puis au même niveau (pas dedans)
donc fichier formulaire php avec pour l'upload

Code :
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
 
# options de pièce jointe
# répertoire temporaire d'upload (option: vide ou $rep inconnu)
# NB. le répertoire "upload" doit être créé sur le serveur (en FTP)
$rep = "upload/"; // ne pas oublier le slash /
# taille max de la pièce jointe (multiple de 1024)
$taillemax = 1048576;
....
 
 
# pièce jointe
	$piecejointe = "";
	if(!$erreur && strlen($_FILES['Fichier']['name'])) {
		$fichier = $_FILES['Fichier'];
 
 
		# upload du fichier sur le serveur
		$temp = $fichier['tmp_name'];
		$name = $fichier['name'];
		$size = $fichier['size'];
		$destination = $rep.$name;
		$ext = $_FILES['Fichier']['type'];
    	if( !strstr($ext, 'jpg') && !strstr($ext, 'jpeg') && !strstr($ext, 'psd') && !strstr($ext, 'png') && !strstr($ext, 'bmp') && !strstr($ext, 'gif') )
		$erreur = "Format du fichier image $name invalide uniquement : bmp, jpg, psd, png, gif";
		if($size > $taillemax)
			$erreur = "Taille du fichier $name > ".(int)($taillemax/1024)." Ko";
		elseif(!@is_uploaded_file($temp))
			$erreur = "Téléchargement du fichier $name impossible";
		elseif(!@move_uploaded_file($temp, $destination))
			$erreur = "Problème de transfert du fichier $name";
		if($erreur) $focus = 7;
		else {
			# lecture du type de fichier
			if(!function_exists('mime_content_type')) {
				function mime_content_type($fichier) {
					# ajouter autant de combinaisons que souhaitées
					$mime = array(
					'.gif' => 'image/gif',
					'.jpg' => 'image/jpeg',
					'.psd' => 'image/x-xwd',
					'.png' => 'image/png',
					'.bmp' => 'image/bmp',
					);
					# par défaut
					if(!$type = $mime[strrchr($fichier,'.')]) $type = "application/octet-stream";
					return $type;
				}
			}
 
			$mimetype = mime_content_type($destination);
			# lecture et conversion du fichier
			if($openf = @fopen($destination, "rb")) {
				$fichier = fread($openf, filesize($destination));
				@fclose($openf);
				# encodage norme RFC 2045
				$piecejointe = chunk_split(base64_encode($fichier));
			} else {
				$erreur = "Problème de lecture du fichier $name";
				$focus = 7;
			}
		}
 
	}

et ton formulaire avec dedans
Code :
1
2
3
4
5
6
<?		if (file_exists($rep)) { ?>
			     <label for="fichier">Image/photo du club</label><input type="hidden" name="MAX_FILE_SIZE" value="<? echo $taillemax?>" />
				<input type="file" id="fichier" name="Fichier" size="35" />
				<label>&nbsp;</label>NB : format : png, gif, psd, jpg - taille du fichier inférieure à <?= (int)($taillemax/1024)?> Ko	</p>
 
	 <?		} ?>
oukok est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 12h21.


 
 
 
 
Partenaires

Hébergement Web