firefox ie opera

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : firefox ie opera

par VaN » 18 déc. 2008, 16:58

L'upload se passe dans le fichier upload.php :

Je te copie le mien, qui fait un upload de fichier (des photos dans mon cas), et qui en fait un thumbnail (miniatures) qu'il copie dans un dossier propre au thumbnails.

Lis le, comprends le, et arranges le à ta sauce. Mais comme je te l'ai dit, pas facile à mettre en place la première fois. Prend bien la dernière version en date (2.2.0 Beta 3), elle corrige des bugs et est plus facile à mettre en place il me semble. N'hésites pas à te tourner vers la doc présente sur le site.

N'hésites pas non plus à m'envoyer un message privé, si tu as des problèmes.
<?php
require_once '../connexion.php';
require_once '../vars.php';
require_once '../functions.php';
/* Note: This thumbnail creation script requires the GD PHP Extension.  
	If GD is not installed correctly PHP does not render this page correctly
	and SWFUpload will get "stuck" never calling uploadSuccess or uploadError
 */

// Get the session Id passed from SWFUpload. We have to do this to work-around the Flash Player Cookie Bug
if (isset($_POST["PHPSESSID"])) {
	session_id($_POST["PHPSESSID"]);
}

session_start();
ini_set("html_errors", "0");

// Check the upload
if (!isset($_FILES["Filedata"]) || !is_uploaded_file($_FILES["Filedata"]["tmp_name"]) || $_FILES["Filedata"]["error"] != 0) {
	echo "ERROR:invalid upload";
	exit(0);
}

// Get the image and create a thumbnail
$img = imagecreatefromjpeg($_FILES["Filedata"]["tmp_name"]);
if (!$img) {
	echo "ERROR:could not create image handle ". $_FILES["Filedata"]["tmp_name"];
	exit(0);
}

$width = imageSX($img);
$height = imageSY($img);

if (!$width || !$height) {
	echo "ERROR:Invalid width or height";
	exit(0);
}

// Build the thumbnail
$thumbHeight = 90;

$thumbWidth = round($width * $thumbHeight / $height);
$new_img = imagecreatetruecolor($thumbWidth, $thumbHeight);

if (!@imagecopyresampled($new_img, $img, 0, 0, 0, 0, $thumbWidth, $thumbHeight, $width, $height)) {
	header("HTTP/1.0 500 Internal Server Error");
	echo "Could not resize image";
	exit(0);
}

if (!isset($_SESSION["file_info"])) {
	$_SESSION["file_info"] = array();
}

// Use a output buffering to load the image into a variable
/*
ob_start();
imagejpeg($new_img);
$imagevariable = ob_get_contents();
ob_end_clean();

$file_id = md5($_FILES["Filedata"]["tmp_name"] + rand()*100000);

$_SESSION["file_info"][$file_id] = $imagevariable;
*/
/////////////////////////////////////////////////////////////////////////////////////////////
// On fait l'upload ici, car si on le fait avant la création des thumbnails, le script bug //
/////////////////////////////////////////////////////////////////////////////////////////////

// Ajout dans la BDD
$photo_id = updateTableAndGetInsertId("INSERT INTO ".$cfg_prefixe."photos VALUES('', '".$_POST['ANNONCE_ID']."', '".date('Y-m-d H:i:s')."', '')");

$extension = strtolower(strrchr($_FILES["Filedata"]["name"],'.'));
$pathLarges = '../medias/photos/larges/';
$pathThumbs = '../medias/photos/thumbs/';
$photoName = $_POST['ANNONCE_ID'].'_'.$photo_id;

// upload de l'image
move_uploaded_file($_FILES["Filedata"]["tmp_name"], $pathLarges.$photoName.$extension);

// On la rétrécie si trop grande
if($height > 400)
	createThumbnail($photoName.$extension, $extension, $pathLarges, $pathLarges, 400);

// enregistrement du thumb
createThumbnail($photoName.$extension, $extension, $pathLarges, $pathThumbs, 90);




/////////////////////////////////////////////////////////////////////////////////////////////
//                                       Fin de l'upload                                   //
/////////////////////////////////////////////////////////////////////////////////////////////

//echo "FILEID:" . $file_id;	// Return the file id to the script
echo "FILEID:".$photoName;
	
?>

par traker » 18 déc. 2008, 10:13

merci je regarde ca de suite


re
c'est pas mal du tout c'est meme vachement bien comme swf

rere
j'ai trouvé sa aussi en fr
http://wiki.mediabox.fr/tutoriaux/flash/filereference

ps: Van ton soft me copie ou le fichier je n'arrive pas avoir ou il faut mettre le chemin ou le script?

par VaN » 17 déc. 2008, 19:34

Perso, je te conseillerai, juste par curiosité, de jeter un coup d'oeil ici : http://swfupload.org/

Ou juste ici, pour une démo de la version la plus simple de l'application : http://demo.swfupload.org/v220beta3/sim ... /index.php

Ca semble correspondre à tes besoins.

Alors oui, c'est un peu compliqué à mettre en place (surtout la première fois, une fois que tu l'as fait une fois, c'est peinard). Mais une fois que ça marche, vla la classe. Quand t'as un formulaire qui intègre ce genre d'application, bah tout de suite, ça donne une autre gueule.

par traker » 17 déc. 2008, 15:24

merci yaug

je trouve très pénible de rentrer un par un les fichiers
si il y a 2 ou 3 ca va mais après c'est lourd pour l'utilisateur

merci a tous pour vos réponses

ps:HyWaN je passe par ma secrétaire ca serre toujours les ptit bête la lol il va me tue !!!! :lol:

par yaug » 16 déc. 2008, 18:44

Je ne dis pas le contraire :D
Je rappelais juste ce que voulais traker.

Sinon condoléances traker. :twisted:

par Hywan » 16 déc. 2008, 18:28

Entre sélectionner plusieurs fichiers d'un coup et remplir plusieurs champs, la nuance est subtile. Surtout qu'avec la seconde solution, tu restes sur HTML/PHP donc accessible sur toutes les machines … C'est la solution à retenir, c'est tout.

Traker, si tu écris des compte-rendus de cette façon à ton patron, prépare toi à partir de l'entreprise avec une marque aux fesses ;-).

par yaug » 16 déc. 2008, 17:11

Oui mais non..
On lui avait déjà proposé cela au début du topic.. mais ce qu'il veut c'est quelque chose ou tu sélectionnes plusieurs fichiers D'UN COUP, pas X sélections justement.
Bref, un truc qui me semble infaisable avec les technologies concernées.

par momox » 16 déc. 2008, 17:04

Plusieurs champs de type "file"...
Avec un peu de javascript, on peut faire en sorte que l'utilisateur puisse envoyer autant de fichiers que souhaité en multipliant les input via javascript a l'infini ou presque ;)

par yaug » 16 déc. 2008, 16:46

du java :]

A première vu c'est impossible.

par traker » 16 déc. 2008, 16:39

merci
c'est vrai la preuve!!!!! lol :?

je Vais revoir ma copie

encore une question, comment vous faites quand vous avez des utilisateurs qui doivent uploader plusieurs fichiers pour ne pas les mettre un par un ????

par Calimero » 16 déc. 2008, 12:58

je passai un fichier par un formulaire POST, je récupérai son chemin c:/etc....
C'est de la bidouille ça.

A mon avis, soit tu te restreins à utiliser des navigateurs sur lesquels cette bidouille fonctionne, soit tu réfléchis à une solution alternative. Mais n'espère pas que ça fonctionne partout.

par traker » 16 déc. 2008, 12:45

pour le français ?! je passe un correcteur a chaque fois !!

a l'origine sous ie
je passai un fichier par un formulaire POST, je récupérai son chemin c:/etc....
et je scanner le répertoire pour copier tout le fichier "image" du répertoire vers un autre répertoire
(l'utilisateur indique un fichier et tout les suivant seront aussi copier)

mon problème c'est que sous opera dans la variable $_POST il y a que le nom du fichier je ne peut plus scanner et copier mes fichiers

et c'est le même problème avec $_FILES j'ai que le chemin temporaire

donc tout ca pour dire que l'on a pas la même chose en retour d'un formulaire post dans ie<8 et opera et que je suis dans la mouise

dans tout les cas il n'y a pas de truc pour récupère le chemin réel et complet d'un fichier passé en POST ou GET sous opera et les autres

merci

par Hywan » 16 déc. 2008, 11:13

Est-ce que tu pourrais faire un effort pour écrire français s'il te plaît ? C'est pénible de te lire.

Je n'arrive pas à comprendre si tes fichiers sont uploadés ou s'ils proviennent juste d'une liste par scan' … ?
Soit tes images sont uploadées et tu les traite via $_FILES. Soit c'est un formulaire normal (pas d'upload), et tu traites le tout via $_POST.

par traker » 16 déc. 2008, 11:07

Hey :),

Donc si je suis sur autre chose que Windows, le chemin ne fonctionnera pas non plus … Revoit ton C:\ … Et même pour Windows, on ne travaille pas toujours sur le disque C:.
non ta pas compris .. c'est juste un exemple sous ie il envoie tout le chemin et sous opera il envoie que le nom donc obligé de faire un $_FILES

De plus, l'exploitation des fichiers versés se fait via la variable globale $_FILES et non $_POST. Tu trouveras suffisamment de ressource sur Internet pour te documenter, sinon revient nous voir.
mais avec $_FILES G un autre probleme dans mon script je recupere le chemin du repertoire et je copie toute les images de repertoire mais avec $_FILES !!!! comme il me copie juste le fichier dans le tmp du serveur adieu mon scaner

"et dire qu'a l'origine c'est juste un ptit truc poufffff et je suis meme pas payer pour ca merci les chef"

en tout cas merci a vous

par Hywan » 15 déc. 2008, 18:27

Hey :),

Donc si je suis sur autre chose que Windows, le chemin ne fonctionnera pas non plus … Revoit ton C:\ … Et même pour Windows, on ne travaille pas toujours sur le disque C:.
De plus, l'exploitation des fichiers versés se fait via la variable globale $_FILES et non $_POST. Tu trouveras suffisamment de ressource sur Internet pour te documenter, sinon revient nous voir.