Bonjour,
J'ai suivi le tuto Upload drag'n'drop et je bloque quand j'essaye de modifier le script.
J'aimerai que lorsque j'Upload une image, qu'il me la duplique et la resize (avec la function imageresize()) dans une autre résolution.
Puis qu'il modifie le nom de l'image créé de cette manière : nom_image_thumbmail entre autre.
j'ai donc, dans mon fichier upload.php créé une variable $name avec comme valeur : $h'x-file-name'].'_thumbmail';
Ensuite, j'appel la functions imageresize() avec les valeurs qui vont bien. Exemple :
imageresize($source,$folder.$name,145,91,true);
Mais cela ne fonctionne pas, l'upload ce passe bien mais pas de thumbmail a l'horizon.
Dans Firebug j'ai pas d'erreur...
Voici mon upload.php :
header('content-type: application/json');
$h = getallheaders();
$o = new stdClass();
$folder = isset($h'x-param-folder']) ? $h'x-param-folder'].'/' : 'img/';
$source = file_get_contents('php://input');
$name = $h'x-file-name'].'_thumbmail';
$types = Array('image/png', 'image/gif', 'image/jpeg');
if(!in_array($h'x-file-type'],$types)){
$o->error = 'Format non supporté';
}else{
if(isset($h'x-param-value'])){
unlink($folder.$h'x-param-value']);
}
imageresize($source,$folder.$h'x-file-name'],1680,1050,true);
$o->name = $h'x-file-name'];
$o->content = '<img src="img/'.$h'x-file-name'].'"/>';
imageresize($source,$folder.$name,145,91,true);
}
echo json_encode($o);
je débute en PHP, mais je ne connais rien en javascript/jquery...
Parcequ'il me semble si j'ai bien compris, que le script intervient aussi, sans vraiment savoir ce qu'il fait à ce moment là :
xhr.open('post',o.script,true);
xhr.setRequestHeader('content-type', 'multipart/form-data');
xhr.setRequestHeader('x-file-type', file.type);
xhr.setRequestHeader('x-file-size', file.fileSize);
xhr.setRequestHeader('x-file-name', file.fileName);
for(var i in area.data()){
if(typeof area.data(i) !== 'object'){
xhr.setRequestHeader('x-param-'+i, area.data(i));
}
}
xhr.send(file);
merci pour votre aide!
Yes!! j'ai réussi!
En expliquant mon probléme j'ai percuté que le xhr dans le fichier dropfile.js manipule l'objet o.
J'ai donc modifié upload.php comme cela :
header('content-type: application/json');
$h = getallheaders();
$o = new stdClass();
$folder = isset($h'x-param-folder']) ? $h'x-param-folder'].'/' : 'img/';
$source = file_get_contents('php://input');
$types = Array('image/png', 'image/gif', 'image/jpeg');
$str = str_replace('.jpg','',$h'x-file-name']);
if(isset($h'x-file-type']) && ($h'x-file-type'] == 'image/png')){
$ext = '.png';
}elseif($h'x-file-type'] == 'image/gif'){
$ext = '.gif';
}elseif($h'x-file-type'] == 'image/jpeg'){
$ext = '.jpg';
}
$name = $str.'_thumbmail'.$ext;
if(!in_array($h'x-file-type'],$types)){
$o->error = 'Format non supporté';
}else{
if(isset($h'x-param-value'])){
unlink($folder.$h'x-param-value']);
}
imageresize($source,$folder.$h'x-file-name'],1680,1050,true);
$o->name = $h'x-file-name'];
$o->content = '<img src="img/'.$h'x-file-name'].'"/>';
imageresize($source,$folder.$name,145,91,true);
$o->name = $h'x-file-name'];
$o->content = '<img src="img/'.$name.'"/>';
}
echo json_encode($o);
et donc quand j'upload mon image j'ai bien mon image et sa miniature ^^
Par contre maintenant, dans le dossier ou j'upload mes images, il se créé visiblement un fichier thumbs.db qui génére automatiquement un "bloc" d'upload vide avec le texte : déposer votre image ici.
Y'a t'il possibilité d'éviter cela?
Problème de thumbs.db réglé, c'est la mise en cache de Windows des images présente dans un dossier ^^