Problème tuto Upload en Drag & Drop

Par cid5420, il y a 11 ans


Bonjour,
je l'ai développé en local, tous fonctionne bien mais dès que je passe en ligne, (serveur 1&1),
j'ai une erreur du type:

Uncaught SyntaxError: Unexpected token <

en regardant plus loin, le XHR me retourne une erreur :

<div style="border:1px solid #990000;padding-left:20px;margin:0 0 10px 0;">around<h4>A PHP Error was encountered</h4>around<p>Severity: Notice</p> around<p>Message: Undefined index: x-file-type</p> around<p>Filename: controllers/upload.php</p> around<p>Line Number: 24</p>around</div>{"error":"Format non support\u00e9"}

j'ai fait un console.log de file :

File {webkitRelativePath: "", lastModified: 1410875544000, lastModifiedDate: Tue Sep 16 2014 15:52:24 GMT+0200 (Paris, Madrid (heure d’été)), name: "SMTOM.jpeg", type: "image/jpeg"…}lastModified: 1410875544000lastModifiedDate: Tue Sep 16 2014 15:52:24 GMT+0200 (Paris, Madrid (heure d’été))name: "SMTOM.jpeg"size: 158328type: "image/jpeg"webkitRelativePath: ""

Est-ce normale que webkitRelativePath est vide ?

Si quelqu'un à une idée, merci d'avance

9 réponses

Grafikart, il y a 11 ans

Fixe l'erreur PHP ça résoudra ton pb

Grafikart, il y a 11 ans
<div style="border:1px solid #990000;padding-left:20px;margin:0 0 10px 0;">around<h4>A PHP Error was encountered</h4>around<p>Severity: Notice</p> around<p>Message: Undefined index: x-file-type</p> around<p>Filename: controllers/upload.php</p> around<p>Line Number: 24</p>around</div>
cid5420, il y a 11 ans

Je suis vraiment désolé mais je ne voix pas bien ce que je peut faire avec se code ! j'ai bien regardé ligne 24 mais rien d'annormale !

Carouge10, il y a 11 ans

Bonjour,

Montrer-nous quelques lignes de code qui précédes et suivent la ligne n°24

betaWeb, il y a 11 ans

Salut, salut !

Tu as un "undefined index", ce qui signifie tout simplement que la clé "x-file-type" n'est pas définie. Il te faudrait "var_dumper" (comme le dit si bien Jonathan) ton array $_FILES et voir si celui-ci n'est pas vide, ou alors regarde du côté de ta console JS si tu n'as pas une erreur.

cid5420, il y a 11 ans
public function do_upload() { header('content-type: application/json'); //$h = getallheaders(); $h = $_SERVER; $o = new stdClass(); //RECUPERER LE FICHIER $source = file_get_contents('php://input'); $types = Array('image/png', 'image/gif', 'image/jpeg', 'image/jpg'); $folder = './img/logo/'; 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']); } //ECRIRE LE FICHIER file_put_contents('./img/logo/'.$h['x-file-name'], $source); $o->name = $h['x-file-name']; $o->content = '<div class="container imgload"> <img class="img-responsive" src="'.base_url().'img/logo/'.$h['x-file-name'].'"/> </div>'; $this->load->model('ct_model'); $id = $this->uri->segment(3); $data= array( 'Logo' => $h['x-file-name'] ); $this->ct_model->majClientLogo($id, $data); } echo json_encode($o); }

ligne 24 c'est juste avant de tester le type de fichier

cid5420, il y a 11 ans

Quel NUL pourquoi je n'ai pas pensé à utiliser le var_dump() sur $h, j'aurais trouvé dirrect le prob !!!
En tout cas merci pour cette illumination ! Sur la page du tuto, il est dit de remplacer les x-file-name par HTTP_X_FILE_NAME seulement je ne savais pas vraiment si il fallait les remplacer partout donc j'ai essayé mais visiblement il fallait remplacer uniquement dans ma fonction do_upload().
Sujet résolu ^^

Carouge10, il y a 11 ans

Plus qu'à validé la réponse qui vous à aider à résoudre ce problème

cid5420, il y a 11 ans

Comment ça ?