Page 1 sur 1

Upload fichier en CMJN

Posté : 02 mars 2009, 15:23
par Romuald632
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 ?

Posté : 02 mars 2009, 15:35
par Aureusms
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.

Posté : 02 mars 2009, 15:38
par Sedril
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; ?>

Posté : 02 mars 2009, 15:44
par Berzemus
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:

Posté : 02 mars 2009, 15:46
par Romuald632
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ù ?

Posté : 02 mars 2009, 15:53
par Sedril
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.

Posté : 02 mars 2009, 15:56
par Sedril
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).

Posté : 02 mars 2009, 16:05
par Romuald632
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); 

Posté : 02 mars 2009, 16:28
par Berzemus
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$.