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


betaWeb
Réponse acceptée

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
Auteur
Réponse acceptée

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 ^^

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

cid5420
Auteur

Comment ça ?

<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
Auteur

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 !

Bonjour,

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

cid5420
Auteur
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

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