IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

PHP - IMAGE - SQL


Sujet :

PHP & Base de données

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Juin 2013
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2013
    Messages : 15
    Points : 0
    Points
    0
    Par défaut PHP - IMAGE - SQL
    salut salut à tous,

    je viens ici pour plusieurs question et j’espère résoudre mon problème ,

    alors pour m'exercer un peut j'ai voulu faire un album photo jusqu'ici pas trop de problème du style :

    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <form method="post" action ="Admin_galerie.php" enctype="multipart/form-data">
    	<input type="file" name="img"/>
    	<input type="submit" name="Envoyer" />
    </from>

    tout marché super bien, je me suis dit tien, je vais chercher un script sur internet pour le Drag & Drop ( feignant ) ,

    donc tout vas bien jusqu’à la il marche parfaitement bien sauf que je comprend pas certaine chose et je voudrai faire d'une autre manière donc je m'explique :

    le probleme qu'il y a c'est que quand je drag une image elle va bien dans le dossier mais elle s'affiche n'importe comment sans modifier la taille alors que pour mon formulaire j'avais mis en place un petit script (je vous le met ) :
    ImgCreed.php
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    <?php
     
    class Img{
     
    	static function creerMin($img,$chemin,$nom,$mlargeur=100,$mhauteur=100){
    		// On supprime l'extension du nom
    		$nom = substr($nom,0,-4);
    		// On récupère les dimensions de l'image
    		$dimension=getimagesize($img);
    		// On cré une image à partir du fichier récup
    		if(substr(strtolower($img),-4)==".jpg"){$image = imagecreatefromjpeg($img); }
    		else if(substr(strtolower($img),-4)==".png"){$image = imagecreatefrompng($img); }
    		else if(substr(strtolower($img),-4)==".gif"){$image = imagecreatefromgif($img); }
    		// L'image ne peut etre redimensionne
    		else{return false; }
     
    		// Création des miniatures
    		// On cré une image vide de la largeur et hauteur voulue
    		$miniature =imagecreatetruecolor ($mlargeur,$mhauteur); 
    		// On va gérer la position et le redimensionnement de la grande image
    		if($dimension[0]>($mlargeur/$mhauteur)*$dimension[1] ){ $dimY=$mhauteur; $dimX=$mhauteur*$dimension[0]/$dimension[1]; $decalX=-($dimX-$mlargeur)/2; $decalY=0;}
    		if($dimension[0]<($mlargeur/$mhauteur)*$dimension[1]){ $dimX=$mlargeur; $dimY=$mlargeur*$dimension[1]/$dimension[0]; $decalY=-($dimY-$mhauteur)/2; $decalX=0;}
    		if($dimension[0]==($mlargeur/$mhauteur)*$dimension[1]){ $dimX=$mlargeur; $dimY=$mhauteur; $decalX=0; $decalY=0;}
    		// on modifie l'image crée en y plaçant la grande image redimensionné et décalée
    		imagecopyresampled($miniature,$image,$decalX,$decalY,0,0,$dimX,$dimY,$dimension[0],$dimension[1]);
    		// On sauvegarde le tout
    		imagejpeg($miniature,$chemin."/".$nom.".jpg",90);
    		return true;
    	}
     
    	static function convertirJPG($img){
    // On cré une image à partir du fichier récup
    		if(substr(strtolower($img),-4)==".jpg"){$image = imagecreatefromjpeg($img); }
    		else if(substr(strtolower($img),-4)==".png"){$image = imagecreatefrompng($img); }
    		else if(substr(strtolower($img),-4)==".gif"){$image = imagecreatefromgif($img); }
    		// L'image ne peut etre redimensionne
    		else{return false; }
    		unlink($img);
    		imagejpeg($image,substr($img,0,-3)."jpg",90);
    		return true;
     
    	}
    }
     
    ?>
    et j'aimerai que mon Drag s'applique à ce script, une petite idée ?

    (j'évite de mettre en ligne le code du drag pour une indigestion )
    mais pour le drag il y a : post_file.php et deux fichier en Js,


    Maintenant venant au but du Sql, je me suis dis pour amélioré mes images et la gestion pourquoi pas crée une base de donnée, pour pouvoir supprimer modifier, l'image et ainsi mettre des commentaires ou tas d'autre mais je suppose que ca va pas mal modifier mes scripts non ?

    je vous remercie d'avance du temps que vous mettrez a me consacrer ,

    bonne soirée

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Si on ne connait pas le reste du script, on va avoir du mal à te dire comment le modifier.
    Dis nous simplement d'ou il vient.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Juin 2013
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2013
    Messages : 15
    Points : 0
    Points
    0
    Par défaut
    post_script.php

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
     
    <?php
    // If you want to ignore the uploaded files, 
    // set $demo_mode to true;
     
    $demo_mode = false;
    $upload_dir = 'images/min/';
    $allowed_ext = array('jpg','jpeg','png','gif');
     
     
    if(strtolower($_SERVER['REQUEST_METHOD']) != 'post'){
    	exit_status('Error! Wrong HTTP method!');
    }
     
     
    if(array_key_exists('pic',$_FILES) && $_FILES['pic']['error'] == 0 ){
     
    	$pic = $_FILES['pic'];
     
    	if(!in_array(get_extension($pic['name']),$allowed_ext)){
    		exit_status('Only '.implode(',',$allowed_ext).' files are allowed!');
    	}	
     
    	if($demo_mode){
     
    		// File uploads are ignored. We only log them.
     
    		$line = implode('		', array( date('r'), $_SERVER['REMOTE_ADDR'], $pic['size'], $pic['name']));
    		file_put_contents('log.txt', $line.PHP_EOL, FILE_APPEND);
     
    		exit_status('Uploads are ignored in demo mode.');
    	}
     
     
    	// Move the uploaded file from the temporary 
    	// directory to the uploads folder:
     
    	if(move_uploaded_file($pic['tmp_name'], $upload_dir.$pic['name'])){
    		exit_status('File was uploaded successfuly!');
    	}
     
    }
     
    exit_status('Something went wrong with your upload!');
     
     
    // Helper functions
     
    function exit_status($str){
    	echo json_encode(array('status'=>$str));
    	exit;
    }
     
    function get_extension($file_name){
    	$ext = explode('.', $file_name);
    	$ext = array_pop($ext);
    	return strtolower($ext);
    }
    ?>
    Jquery.js
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    189
    190
    191
    192
    193
    194
    195
    196
    197
    198
    199
    200
    201
    202
    203
    204
    205
    206
    207
    208
    209
    210
    211
    212
    213
    214
    215
    216
    217
    218
    219
    220
    221
    222
    223
    224
    225
    226
    227
    228
    229
    230
    231
    232
    233
    234
    235
    236
    237
    238
    239
    240
    241
    242
    243
    244
    245
    246
    247
    248
    249
    250
    251
    252
    253
    254
    255
    256
    257
    258
    259
    260
    261
    262
    263
    264
    265
    266
    267
    268
    269
    270
    271
    272
    273
    274
    275
    276
    277
    278
    279
    280
    281
    282
    283
    284
    285
    286
    287
    288
    289
    290
    291
     
    (function($){
     
    	jQuery.event.props.push("dataTransfer");
    	var opts = {},
    		default_opts = {
    			url: '',
    			refresh: 1000,
    			paramname: 'userfile',
    			maxfiles: 25,
    			maxfilesize: 1, // MBs
    			data: {},
    			drop: empty,
    			dragEnter: empty,
    			dragOver: empty,
    			dragLeave: empty,
    			docEnter: empty,
    			docOver: empty,
    			docLeave: empty,
    			beforeEach: empty,
    			afterAll: empty,
    			rename: empty,
    			error: function(err, file, i){alert(err);},
    			uploadStarted: empty,
    			uploadFinished: empty,
    			progressUpdated: empty,
    			speedUpdated: empty
    		},
    		errors = ["BrowserNotSupported", "TooManyFiles", "FileTooLarge"],
    		doc_leave_timer,
    		stop_loop = false,
    		files_count = 0,
    		files;
     
    	$.fn.filedrop = function(options) {
    		opts = $.extend( {}, default_opts, options );
     
    		this.bind('drop', drop).bind('dragenter', dragEnter).bind('dragover', dragOver).bind('dragleave', dragLeave);
    		$(document).bind('drop', docDrop).bind('dragenter', docEnter).bind('dragover', docOver).bind('dragleave', docLeave);
    	};
     
    	function drop(e) {
    		opts.drop(e);
    		files = e.dataTransfer.files;
    		if (files === null || files === undefined) {
    			opts.error(errors[0]);
    			return false;
    		}
     
    		files_count = files.length;
    		upload();
    		e.preventDefault();
    		return false;
    	}
     
    	function getBuilder(filename, filedata, boundary) {
    		var dashdash = '--',
    			crlf = '\r\n',
    			builder = '';
     
    		$.each(opts.data, function(i, val) {
    	    	if (typeof val === 'function') val = val();
    			builder += dashdash;
    			builder += boundary;
    			builder += crlf;
    			builder += 'Content-Disposition: form-data; name="'+i+'"';
    			builder += crlf;
    			builder += crlf;
    			builder += val;
    			builder += crlf;
    		});
     
    		builder += dashdash;
    		builder += boundary;
    		builder += crlf;
    		builder += 'Content-Disposition: form-data; name="'+opts.paramname+'"';
    		builder += '; filename="' + filename + '"';
    		builder += crlf;
     
    		builder += 'Content-Type: application/octet-stream';
    		builder += crlf;
    		builder += crlf; 
     
    		builder += filedata;
    		builder += crlf;
     
    		builder += dashdash;
    		builder += boundary;
    		builder += dashdash;
    		builder += crlf;
    		return builder;
    	}
     
    	function progress(e) {
    		if (e.lengthComputable) {
    			var percentage = Math.round((e.loaded * 100) / e.total);
    			if (this.currentProgress != percentage) {
     
    				this.currentProgress = percentage;
    				opts.progressUpdated(this.index, this.file, this.currentProgress);
     
    				var elapsed = new Date().getTime();
    				var diffTime = elapsed - this.currentStart;
    				if (diffTime >= opts.refresh) {
    					var diffData = e.loaded - this.startData;
    					var speed = diffData / diffTime; // KB per second
    					opts.speedUpdated(this.index, this.file, speed);
    					this.startData = e.loaded;
    					this.currentStart = elapsed;
    				}
    			}
    		}
    	}
     
     
     
    	function upload() {
    		stop_loop = false;
    		if (!files) {
    			opts.error(errors[0]);
    			return false;
    		}
    		var filesDone = 0,
    			filesRejected = 0;
     
    		if (files_count > opts.maxfiles) {
    		    opts.error(errors[1]);
    		    return false;
    		}
     
    		for (var i=0; i<files_count; i++) {
    			if (stop_loop) return false;
    			try {
    				if (beforeEach(files[i]) != false) {
    					if (i === files_count) return;
    					var reader = new FileReader(),
    						max_file_size = 1048576 * opts.maxfilesize;
     
    					reader.index = i;
    					if (files[i].size > max_file_size) {
    						opts.error(errors[2], files[i], i);
    						filesRejected++;
    						continue;
    					}
     
    					reader.onloadend = send;
    					reader.readAsBinaryString(files[i]);
    				} else {
    					filesRejected++;
    				}
    			} catch(err) {
    				opts.error(errors[0]);
    				return false;
    			}
    		}
     
    		function send(e) {
    			// Sometimes the index is not attached to the
    			// event object. Find it by size. Hack for sure.
    			if (e.target.index == undefined) {
    				e.target.index = getIndexBySize(e.total);
    			}
     
    			var xhr = new XMLHttpRequest(),
    				upload = xhr.upload,
    				file = files[e.target.index],
    				index = e.target.index,
    				start_time = new Date().getTime(),
    				boundary = '------multipartformboundary' + (new Date).getTime(),
    				builder;
     
    			newName = rename(file.name);
    			if (typeof newName === "string") {
    				builder = getBuilder(newName, e.target.result, boundary);
    			} else {
    				builder = getBuilder(file.name, e.target.result, boundary);
    			}
     
    			upload.index = index;
    			upload.file = file;
    			upload.downloadStartTime = start_time;
    			upload.currentStart = start_time;
    			upload.currentProgress = 0;
    			upload.startData = 0;
    			upload.addEventListener("progress", progress, false);
     
    			xhr.open("POST", opts.url, true);
    			xhr.setRequestHeader('content-type', 'multipart/form-data; boundary=' 
    			    + boundary);
     
    			xhr.sendAsBinary(builder);  
     
    			opts.uploadStarted(index, file, files_count);  
     
    			xhr.onload = function() { 
    			    if (xhr.responseText) {
    				var now = new Date().getTime(),
    				    timeDiff = now - start_time,
    				    result = opts.uploadFinished(index, file, jQuery.parseJSON(xhr.responseText), timeDiff);
    					filesDone++;
    					if (filesDone == files_count - filesRejected) {
    						afterAll();
    					}
    			    if (result === false) stop_loop = true;
    			    }
    			};
    		}
    	}
     
    	function getIndexBySize(size) {
    		for (var i=0; i < files_count; i++) {
    			if (files[i].size == size) {
    				return i;
    			}
    		}
     
    		return undefined;
    	}
     
    	function rename(name) {
    		return opts.rename(name);
    	}
     
    	function beforeEach(file) {
    		return opts.beforeEach(file);
    	}
     
    	function afterAll() {
    		return opts.afterAll();
    	}
     
    	function dragEnter(e) {
    		clearTimeout(doc_leave_timer);
    		e.preventDefault();
    		opts.dragEnter(e);
    	}
     
    	function dragOver(e) {
    		clearTimeout(doc_leave_timer);
    		e.preventDefault();
    		opts.docOver(e);
    		opts.dragOver(e);
    	}
     
    	function dragLeave(e) {
    		clearTimeout(doc_leave_timer);
    		opts.dragLeave(e);
    		e.stopPropagation();
    	}
     
    	function docDrop(e) {
    		e.preventDefault();
    		opts.docLeave(e);
    		return false;
    	}
     
    	function docEnter(e) {
    		clearTimeout(doc_leave_timer);
    		e.preventDefault();
    		opts.docEnter(e);
    		return false;
    	}
     
    	function docOver(e) {
    		clearTimeout(doc_leave_timer);
    		e.preventDefault();
    		opts.docOver(e);
    		return false;
    	}
     
    	function docLeave(e) {
    		doc_leave_timer = setTimeout(function(){
    			opts.docLeave(e);
    		}, 200);
    	}
     
    	function empty(){}
     
    	try {
    		if (XMLHttpRequest.prototype.sendAsBinary) return;
    		XMLHttpRequest.prototype.sendAsBinary = function(datastr) {
    		    function byteValue(x) {
    		        return x.charCodeAt(0) & 0xff;
    		    }
    		    var ords = Array.prototype.map.call(datastr, byteValue);
    		    var ui8a = new Uint8Array(ords);
    		    this.send(ui8a.buffer);
    		}
    	} catch(e) {}
     
    })(jQuery);
    Script.js :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
     
    $(function(){
     
    	var dropbox = $('#dropbox'),
    		message = $('.message', dropbox);
     
    	dropbox.filedrop({
    		// The name of the $_FILES entry:
    		paramname:'pic',
     
    		maxfiles: 5,
        	maxfilesize: 100,
    		url: 'post_file.php',
     
    		uploadFinished:function(i,file,response){
    			$.data(file).addClass('done');
    			// response is the JSON object that post_file.php returns
    		},
     
        	error: function(err, file) {
    			switch(err) {
    				case 'BrowserNotSupported':
    					showMessage('Votre navigateur ne supporte pas le HTML5');
    					break;
    				case 'TooManyFiles':
    					alert('Trop de fichier 5 au maximum durant les tests (configurable)');
    					break;
    				case 'FileTooLarge':
    					alert(file.name+' Trop lourd durant le temps de configuration , merci de prevenir le webmaster ! (configurable).');
    					break;
    				default:
    					break;
    			}
    		},
     
    		// Called before each upload is started
    		beforeEach: function(file){
    			if(!file.type.match(/^image\//)){
    				alert('Only images are allowed!');
     
    				// Returning false will cause the
    				// file to be rejected
    				return false;
    			}
    		},
     
    		uploadStarted:function(i, file, len){
    			createImage(file);
    		},
     
    		progressUpdated: function(i, file, progress) {
    			$.data(file).find('.progress').width(progress);
    		}
     
    	});
     
    	var template = '<div class="preview">'+
    						'<span class="imageHolder">'+
    							'<img />'+
    							'<span class="uploaded"></span>'+
    						'</span>'+
    						'<div class="progressHolder">'+
    							'<div class="progress"></div>'+
    						'</div>'+
    					'</div>'; 
     
     
    	function createImage(file){
     
    		var preview = $(template), 
    			image = $('img', preview);
     
    		var reader = new FileReader();
     
    		image.width = 215;
    		image.height = 112;
     
    		reader.onload = function(e){
     
    			// e.target.result holds the DataURL which
    			// can be used as a source of the image:
     
    			image.attr('src',e.target.result);
    		};
     
    		// Reading the file as a DataURL. When finished,
    		// this will trigger the onload function above:
    		reader.readAsDataURL(file);
     
    		message.hide();
    		preview.appendTo(dropbox);
     
    		// Associating a preview container
    		// with the file, using jQuery's $.data():
     
    		$.data(file,preview);
    	}
     
    	function showMessage(msg){
    		message.html(msg);
    	}
     
    });


  4. #4
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Tu peux faire le redimensionnement au niveau de la ligne 35 du .php.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  5. #5
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Juin 2013
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2013
    Messages : 15
    Points : 0
    Points
    0
    Par défaut
    Bien vu l’ami, mais en faite j'aurai bien aimé que ImgCreed.php fonctionne aussi pour le Drag & Drop ou bien tout simplement l'intégré dans les fonction php du drag

    je me suis dis faire un "require" pourrai marché mais ca ne change rien et j'ai modifier déjà dans les dimension mais ce ne change pas je sais pas pourquoi

  6. #6
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Encore une fois, sans voir ton code, on ne peut pas te répondre.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  7. #7
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Juin 2013
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2013
    Messages : 15
    Points : 0
    Points
    0
    Par défaut
    pardonne moi , le code est plus haut mais s'affiche pas, je le remet la :

    Admin_galerie.php


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    <?php
    if(!empty($_FILES)) {
    	require("imgClass.php");
    	$img = $_FILES['img'];
    	$ext = strtolower (substr($img['name'],-3));
    	$allow_ext = array ("jpg",'png','gif');
    	if(in_array($ext,$allow_ext)){
    		move_uploaded_file($img['tmp_name'],"images/".$img['name']);
    	Img::creerMin("images/".$img['name'],"images/min",$img['name'],215,112);
    	Img::convertirJPG("images/".$img['name']);
     
    }
    else{
    	$erreur = "Votre fichier n'est pas une image, si c'est une image contacter le créateur du site";
     
    }
     
     
     
     
    }
     
    ?>
     
    <html>
    <head>
    <meta http-equiv="content-type" content="text/html; charset=utf-8" />
     
     
     
     
    <title>Gallerie photo </title>
     
         <script type="text/javascript" src="js/jquery.min.js"></script>
         <script type="text/javascript" src="js/zoombox/zoombox.js"></script>
         <link href="js/zoombox/zoombox.css" rel="stylesheet" type="text/css" media="screen" />
         <link href="css.css" rel="stylesheet" type="text/css" media="screen" />
     
    <!-- Drag & Drop -->
            <link rel="stylesheet" href="assets/css/styles.css" />
                 <!-- Including The jQuery Library -->
            <script src="http://code.jquery.com/jquery-1.6.3.min.js"></script>
     
            <!-- Including the HTML5 Uploader plugin -->
            <script src="assets/js/jquery.filedrop.js"></script>
     
            <!-- The main script file -->
            <script src="assets/js/script.js"></script>
     
     
         <script type="text/javascript">
            jQuery(function($){
     
     
     
     
     
                $('a.zoombox').zoombox();
     
     
            });
            </script>
     
    </head>
     
    <body>
     
     
     
     
     
    <?php
    if(isset($erreur)){
    	echo $erreur;
    }
    ?>
    <form method="post" action ="Admin_galerie.php" enctype="multipart/form-data">
    	<input type="file" name="img"/>
    	<input type="submit" name="Envoyer" />
    </from>
     
    <br><br><br> Nouveauté ! le Drag & Drops est disponible !  <br>
     
    <!--  Drag & Drop -->
     
     
            <header>
                <h1>Nouveauté ! le Drag & Drops est disponible !</h1>
            </header>
     
            <div id="dropbox">
                <span class="message">Fait glisser ton images ici <br /><i>(en version bêta)</i></span>
            </div>
     
     
     
     
     
     
    <!-- fin drag & Drop -->
     
    <br><br><br><br>  
      <br><br><br><br>  
     
     
    <!-- essayer de changer de page ;) -->
    <div id="galerie">
    <?php
    $dos = "images/min";
    $dir = opendir($dos);
    while($file = readdir($dir)) {
            $allow_ext = array ("jpg", 'png', 'gif');
            $ext = strtolower(substr($file,-3));
     
        if(in_array($ext,$allow_ext)){
     
     
    ?>
     
     
     
        <div class="photo">
    <!-- ici on met le Css : <div class="min"> -->
    <!-- Affiche l'image !-->
     <a class="zoombox zgallery1" href="images/<?php echo $file; ?>" rel="zoombox[galerie]"/>
        <img src="images/min/<?php echo $file; ?>" />
     
     
     
    <!-- <H3> <?php #echo $file; ?> non du fichier </h3>   -->
      </a>
    </div>
     
    <!-- fin du css</div> -->
    <?php
        }
    }
    ?>
    </div>
    <br><br><br><br><br><br><br><br><br><br>
     
      <footer>
                <h2>bêta</h2>
     
            </footer>
     
     
     
    </body>
    </html>

  8. #8
    Expert éminent sénior

    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2010
    Messages
    5 380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2010
    Messages : 5 380
    Points : 10 410
    Points
    10 410
    Par défaut
    Citation Envoyé par bybyx Voir le message
    Bien vu l’ami, mais en faite j'aurai bien aimé que ImgCreed.php fonctionne aussi pour le Drag & Drop ou bien tout simplement l'intégré dans les fonction php du drag
    Faut bien distinguer deux choses, le drag and drop - si tu parle de choisir une ou plusieurs miniatures depuis ton navigateur pour les positionner dans un champ de téléchargement - se fait côté client en html5 ou avec javascript/jquery.
    Côté serveur, php fait l'upload de fichiers et éventuellement les redimensionnements (si tu veux enregistrer les miniatures).

    Mais il y a une question que je me pose :
    - souhaites-tu enregistrer les miniatures sur le serveur ?
    - ou alors enregistrer les images non redimensionnées sur le serveur et faire afficher simplement une miniature en javascript pour illustrer le fichier téléchargé ?

    Dans le premier cas il faudra utiliser ta classe de redimensionnement (Img) depuis ton script post_script.php.

    Dans le second cas on utilise maintenant souvent les fonctions html5 pour créer les vignettes à la volée (sans passer par php) par exemple ce script :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
     
    <style>
      .thumb {
        height: 75px;
        border: 1px solid #000;
        margin: 10px 5px 0 0;
      }
      #files {
        height: 75px;
    	width:400px;
    	margin:auto;
    	position:relative;
    	border-radius: 3px;
    	border: 2px dotted #666;
      }
    </style>
     
    <input type="file" id="files" name="files[]" multiple />
    <output id="list"></output>
     
    <script>
      function handleFileSelect(evt) {
        var files = evt.target.files; // FileList object
     
        // Loop through the FileList and render image files as thumbnails.
        for (var i = 0, f; f = files[i]; i++) {
     
          // Only process image files.
          if (!f.type.match('image.*')) {
            continue;
          }
     
          var reader = new FileReader();
     
          // Closure to capture the file information.
          reader.onload = (function(theFile) {
            return function(e) {
              // Render thumbnail.
              var span = document.createElement('span');
              span.innerHTML = ['<img class="thumb" src="', e.target.result,
                                '" title="', escape(theFile.name), '"/>'].join('');
              document.getElementById('list').insertBefore(span, null);
            };
          })(f);
     
          // Read in the image file as a data URL.
          reader.readAsDataURL(f);
        }
      }
     
      document.getElementById('files').addEventListener('change', handleFileSelect, false);
    </script>
    source

    Remarque que ce code qui affiche les vignette à uploader est compatible drag and drop pour les navigateurs récents à l'exception d'IE

  9. #9
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Juin 2013
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2013
    Messages : 15
    Points : 0
    Points
    0
    Par défaut
    Merci de ta réponse, en faite ImgCreed prend la photo de base,la redimensionne et place la miniature créer par celui ci dans le dossier min afin d'afficher les miniatures, et surprimes aussi les extension mais en faite j'aimerai largement raccourcir les codes de ce drag afin d’intégrer mon script .

    Donc en bref sur mon serveur il y a l'image de base, et l'image redimensionné.,

    en faite ce qui me pose le plus de problème c'est ce drag qui respecte pas les contrainte et j'aimerai bien qu'il exécute les requêtes de imgcreed

  10. #10
    Expert éminent sénior

    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2010
    Messages
    5 380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2010
    Messages : 5 380
    Points : 10 410
    Points
    10 410
    Par défaut
    Img::creerMin et Img::convertirJPG doivent travailler sur $img['tmp_name'] et non pas sur $img['name']

    Par ailleurs dans le fichier "post_script.php" tu dispose d'une fonction "get_extension" pour trouver l'extension d'un fichier. Tu devrais l'utiliser dans ta classe "Img" pour comparer l'extension des fichiers à la place de faire des if(substr(strtolower($img),-4)==".jpg")

    Et puis dans "Admin_galerie.php" et dans ta classe "Img" tu oublies le cas des fichiers avec l'extension "jpeg"

  11. #11
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Juin 2013
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2013
    Messages : 15
    Points : 0
    Points
    0
    Par défaut
    merci de ta réponse ABCIWEB !!
    pourtant les extension jpeg, marche parfaitement bien il y a juste le problème du Drag

  12. #12
    Membre à l'essai
    Inscrit en
    Juin 2013
    Messages
    15
    Détails du profil
    Informations forums :
    Inscription : Juin 2013
    Messages : 15
    Points : 10
    Points
    10
    Par défaut Redimensionnement des images
    Bonjour,


    Comment faire pour afficher les photos a partir de ma base de données de même dimension?
    Par exemple actuellement je fais:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo'<tr><td bgcolor="#38435C" colspan="2" rowspan="3" align ="center"><img src=imagesp/'.$x['image_src'].' width="140"  heigth="100" border= "0" </td><td align="center" bgcolor="#38435C"><B>'.$x['Objetp'].'</B></td><td align="center" rowspan ="1" bgcolor="#38435C"><B>'.$x['Nom'].'</B></td></tr><tr><td align="center" bgcolor ="#38435C">'.$x['Description'].'</td><td align="center" bgcolor ="#38435C">'.$x['Tel'].'</td></tr><tr><td align="center" bgcolor ="#38435C">'.$x['date_inscrit'].'</td><td align="center" bgcolor ="#38435C">'.$x['E-mail'].'</td></tr><tr><td bgcolor ="0987654" align="right" colspan ="4"></td></tr>';
    mais la dimension est toujours dépend des sources des images, grande, petite !!
    Je veux que ça soit le même.

    Aidez-moi.

  13. #13
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Juin 2013
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2013
    Messages : 15
    Points : 0
    Points
    0
    Par défaut
    salut à toi, moi j'ai tout fais passer par le css par exemple pour faire gros j'ai mis :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <div class="photo">
     
     <a class="zoombox zgallery1" href="images/<?php echo $file; ?>" rel="zoombox[galerie]"/>
        <img src="images/min/<?php echo $file; ?>" />
     
     
     
      </a>
    </div>
    Avec les mensurations que je veux dans le css :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    .photo{
        width:215px; height:112px;
        background:red;
        margin:5px;
        display:inline-block
    }

    Le rouge est en faite pour faire en gros mes testes afin de vérifier que toute les images se cale bien comme je veux

    enfin ça me permet d'aligné les photos par 4 après tu peux faire une dimension exacte il y a pour ça il y a des scripts de redimensionnement

  14. #14
    Expert éminent sénior

    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2010
    Messages
    5 380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2010
    Messages : 5 380
    Points : 10 410
    Points
    10 410
    Par défaut
    Citation Envoyé par bybyx Voir le message
    salut à toi, moi j'ai tout fais passer par le css par exemple ...
    Oui enfin la solution de redimensionner les photos en css doit plutôt être une exception, surtout s'il faut en afficher plusieurs et si les dimensions originales sont assez grandes. Une bonne photo de 1000px de large peut faire dans les 300Ko, si tu veux en montrer 10 en format vignette ça fait tout de suite 3Mo rien que pour charger les vignettes... Le site risque de ne pas être très réactif dans ces conditions.

  15. #15
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Juin 2013
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2013
    Messages : 15
    Points : 0
    Points
    0
    Par défaut
    effectivement, tu as raisons mais vu que mes images sont redimensionnées une miniature pour moi ça pose pas de problème apres c'est avec Zoombox qu'elle s’agrandisse

Discussions similaires

  1. Afficher Champ Image SQL Server avec PHP
    Par squal_13 dans le forum Développement
    Réponses: 2
    Dernier message: 07/12/2012, 19h19
  2. [SQL-Server] Problème Image SQL Server/Php
    Par guillaume_AW dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 29/12/2009, 19h27
  3. connexion distante php sur SQL SERVER
    Par grinder59 dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 14/03/2006, 14h59
  4. [SQL-Server] Je n'arrive pas à faire tourner php avec Sql server (2005)
    Par bluecurve dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 01/03/2006, 18h50
  5. PHP -- PL/SQL -- ORACLE
    Par Torando59 dans le forum PL/SQL
    Réponses: 4
    Dernier message: 23/01/2006, 12h28

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo