Upload fichier en CMJN

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 : Upload fichier en CMJN

par Berzemus » 02 mars 2009, 16:28

En web, on utilise les formats jpg, gif et png. Tout le reste aura de larges chances d'être considéré comme un fichier à télécharger.
Un fichier d'extension JPG ou JPEG peut être au format CMJN (ou CMYK pour les anglais).
Ouaip, j'ai répondu un peu vite. Ca ne dépend que du colorspace.
Au moins, j'ai appris l'existence de l'apng et du mng, et une raison de plus pour détester M$.

par Romuald632 » 02 mars 2009, 16:05

Je pensais faire quelque chose dans ce style :
    if( !strstr($filePath, 'CMJN) ) 
    { 
        exit("L'extension de votre fichier n'est pas acceptée !"); 
    } 
     
    $nom .= ".".pathinfo($_FILES['fichier']['name'], PATHINFO_EXTENSION); 

par Sedril » 02 mars 2009, 15:56

En web, on utilise les formats jpg, gif et png. Tout le reste aura de larges chances d'être considéré comme un fichier à télécharger.
Un fichier d'extension JPG ou JPEG peut être au format CMJN (ou CMYK pour les anglais).

par Sedril » 02 mars 2009, 15:53

Tu ne peux pas exploiter le code tel quel. Il faut l'adapter à ton programme.

J'en ferai une fonction que je placerai juste après le contrôle d'extension du type de fichier.

par Romuald632 » 02 mars 2009, 15:46

Voilà ma page UPLOAD
<?php
// On commence par récupérer les champs 
if(isset($_POST['pays']))      $id_pays=$_POST['pays'];
else      $id_pays="";

if(isset($_POST['titre_image']))      $titre_image=$_POST['titre_image'];
else      $titre_image="";

if(isset($_POST['ville']))      $ville=$_POST['ville'];
else      $ville="";

if(isset($_POST['critere']))      $id_critere=$_POST['critere'];
else      $id_critere="";

if(isset($_POST['auteur']))      $auteur=$_POST['auteur'];
else      $auteur="";

if(isset($_POST['copyright']))      $copyright=$_POST['copyright'];
else      $copyright="";

if(isset($_POST['site_web']))      $site_web=$_POST['site_web'];
else      $site_web="";

#Enregistrement de la date et heure
$date  = date("ymd");
$heure = date("His");

#Ajout de la date et l'heure au nom de fichier
$nom= $date."-".$heure;
	echo '<div class="nbr_photo">';
	echo "Référence de votre image : $nom";
    echo  '<br />';

if( isset($_POST['upload']) ) // si formulaire soumis
{
    $content_dir = '../upload/'; // dossier où sera déplacé le fichier

    $tmp_file = $_FILES['fichier']['tmp_name'];

// on vérifie maintenant l'extension
    $type_file = $_FILES['fichier']['type'];

    if( !strstr($type_file, 'jpg') && !strstr($type_file, 'jpeg') && !strstr($type_file, 'png') && !strstr($type_file, 'gif') )
    {
        exit("L'extension de votre fichier n'est pas acceptée !");
    }
	
	$nom .= ".".pathinfo($_FILES['fichier']['name'], PATHINFO_EXTENSION);

    // on copie le fichier dans le dossier de destination
    $name_file = $_FILES['fichier']['name'];

    if( !move_uploaded_file($tmp_file, $content_dir . $nom) )
    {
    exit("Impossible de copier le fichier dans $content_dir");
    }
	echo '<div class="nbr_photo">';
	echo 'Votre fichier a été transféré avec succès';
	echo '</div>';
}
 	
// Aucun champ n'est vide, on peut enregistrer dans la table 
$db = mysql_connect('localhost', 'root', '')  or die('Erreur de connexion '.mysql_error());
// sélection de la base  

mysql_select_db('vol',$db)  or die('Erreur de selection '.mysql_error()); 
  
// on écrit la requête sql 
$sql = "INSERT INTO photo (id_photo,id_pays,ville,image,titre_image,id_critere,auteur,copyright,site_web) VALUES ('".mysql_real_escape_string('')."','".mysql_real_escape_string($id_pays)."','".mysql_real_escape_string($ville)."','".mysql_real_escape_string($nom)."','".mysql_real_escape_string($titre_image)."','".mysql_real_escape_string($id_critere)."','".mysql_real_escape_string($auteur)."','".mysql_real_escape_string($copyright)."','".mysql_real_escape_string($site_web)."')"; 
     
// on insère les informations du formulaire dans la table 
mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error()); 

mysql_close();  // on ferme la connexion 
?>
Le code il faut l'insérer où ?

par Berzemus » 02 mars 2009, 15:44

En web, on utilise les formats jpg, gif et png. Tout le reste aura de larges chances d'être considéré comme un fichier à télécharger.

Voici les différents formats et les navigateurs qui les supportent:
http://en.wikipedia.org/wiki/Comparison ... at_support

Tu peux toujours essayer le XBM ... :wink:

par Sedril » 02 mars 2009, 15:38

Il faut convertir l'image en mode RGB pour quelle puisse être affichée.

Voilà un bref exemple avec Imagick.

Code : Tout sélectionner

<?php $filePath = '/path/to/your/file.jpg'; $i = new Imagick($filePath); $cs = $i->getImageColorspace(); if ($cs == Imagick::COLORSPACE_CMYK) { print "Image is CMYK<br/>n"; ?> CMYK Image:<br/> <img src="<?=$filePath ?>"/> <br/><br/> <?php $i->setImageColorspace(Imagick::COLORSPACE_SRGB); $i->setImageFormat('jpeg'); $cs = $i->getImageColorspace(); if ($cs != Imagick::COLORSPACE_CMYK) { print "Image is no longer CMYK<br/>n"; // write it to a temp file $filePath = '/path/to/temp/file.jpg'; $i->writeImage($filePath); } } else { print "Image is not CMYK<br/>n"; } if ($cs == Imagick::COLORSPACE_SRGB || $cs == Imagick::COLORSPACE_RGB){ print "Image is RGB<br/>n"; } ?> RGB Image:<br/> <img src="<?=$filePath ?>"/> <?php $i->clear(); $i->destroy(); $i = null; ?>

par Aureusms » 02 mars 2009, 15:35

Toi tu utilises IE.... car sous FF cela marche.
Dans un premier temps interdit ce format puis recherche un script permettant une conversion dans un format courant.

Upload fichier en CMJN

par Romuald632 » 02 mars 2009, 15:23

Bonjour,
Mon upload fonctionne très bien, sauf avec des fichiers en CMJN, les photos ne s'affiche pas !
Est-ce qu'il y a un moyen d'afficher les images qui ont ce format ?