IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

NodeJS Discussion :

ERROR - Invalid response code from server 413


Sujet :

NodeJS

  1. #1
    Membre habitué
    Femme Profil pro
    Architecte de système d'information
    Inscrit en
    Février 2012
    Messages
    404
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Architecte de système d'information
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2012
    Messages : 404
    Points : 127
    Points
    127
    Par défaut ERROR - Invalid response code from server 413
    bonjour,
    je suis entrain de réaliser un serveur web avec node.js sur système ubuntu 14.04 qui permet de recevoir une image d’après une appareille mobile.

    toujours je reçois cet message "POST /up 500 96.719 ms - 1097" au niveau de la terminale. Par contre, lorsque j’accède par une page web , il marche sans problème.
    Donc j'ai pas pu comprendre ou se trouve le problème , merci de m'aider.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
     
    TypeError: Cannot read property 'image' of undefined
        at Object.handle (/home/syrine01/Public/cloud_solution/routes/routes.js:18:26)
        at next_layer (/home/syrine01/Public/cloud_solution/node_modules/express/lib/router/route.js:103:13)
        at Route.dispatch (/home/syrine01/Public/cloud_solution/node_modules/express/lib/router/route.js:107:5)
        at c (/home/syrine01/Public/cloud_solution/node_modules/express/lib/router/index.js:195:24)
        at Function.proto.process_params (/home/syrine01/Public/cloud_solution/node_modules/express/lib/router/index.js:253:12)
        at next (/home/syrine01/Public/cloud_solution/node_modules/express/lib/router/index.js:189:19)
        at next (/home/syrine01/Public/cloud_solution/node_modules/express/lib/router/index.js:166:38)
        at Layer.methodOverride [as handle] (/home/syrine01/Public/cloud_solution/node_modules/method-override/index.js:79:5)
        at trim_prefix (/home/syrine01/Public/cloud_solution/node_modules/express/lib/router/index.js:230:15)
        at c (/home/syrine01/Public/cloud_solution/node_modules/express/lib/router/index.js:198:9)
    coté l'outil android studio:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    12920-13729/com.hackerkernel.imageupload E/Request: ERROR java.net.ConnectException: failed to connect to /10.x.x.x (port 8080) after 30000ms: isConnected failed: ECONNREFUSED (Connection refused)
    mon code qui assure l'up d'une image:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
     
    app.post('/up', function(req, res) {
        console.log(req.files.image.originalFilename);
        console.log(req.files.image.path);
            fs.readFile(req.files.image.path, function (err, data){
            var dirname = "/home/syrine01/Public/cloud_solution/file_upload";
            var newPath = dirname + "/uploads/" +req.files.image.originalFilename;
            fs.writeFile(newPath, data, function (err) {
            if(err){
            res.json({'response':"Error"});
            }else {
            res.json({'response':"Saved"});
    }
    });
    });
    });

  2. #2
    Membre extrêmement actif
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2016
    Messages
    223
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2016
    Messages : 223
    Points : 561
    Points
    561
    Par défaut
    quel module d'upload utilises tu dans ton app express ?
    es tu certain(e) d'envoyer un fichier avec le bon nom de paramètre depuis ton app android ?

    Le bon sens voudrait que tu vérifies les champs avant de les consommer.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
     
    if(!('files' in req)) return res.status(500).json({message: "missing files in your request"});
     
    if(!('image' in req.files)) return res.status(500).json({message: "missing image field in your request"});

  3. #3
    Membre habitué
    Femme Profil pro
    Architecte de système d'information
    Inscrit en
    Février 2012
    Messages
    404
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Architecte de système d'information
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2012
    Messages : 404
    Points : 127
    Points
    127
    Par défaut
    toujours le même problème "TypeError: Cannot read property 'image' of undefined at ligne 81", j'en sais pas est-ce -que l'image n'est pas envoyé au serveur d’après l'app android !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    public class MainActivity extends Activity {
        //define global views variable
        public ImageView imageView;
        public Button   selectImage,
                        uploadImage;
     
     
        public String SERVER = "http://x.x.x.x:8090/up",
                        timestamp;
     
        private static final String TAG = MainActivity.class.getSimpleName();
     
        private static final int RESULT_SELECT_IMAGE = 1;
     
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
     
            //instantiate view
            imageView = (ImageView) findViewById(R.id.imageView);
            selectImage = (Button) findViewById(R.id.selectImage);
            uploadImage = (Button) findViewById(R.id.uploadImage);
     
            //when selectImage button is pressed
            selectImage.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    //call the function to select image from album
                    selectImage();
                }
            });
     
            //when uploadImage button is pressed
            uploadImage.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    //get image in bitmap format
                    Bitmap image = ((BitmapDrawable) imageView.getDrawable()).getBitmap();
                    //execute the async task and upload the image to server
                    new Upload(image,"IMG_"+timestamp).execute();
                }
            });
     
        }
     
        //function to select a image
        private void selectImage(){
            //open album to select image
            Intent gallaryIntent = new Intent(Intent.ACTION_PICK,MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
            startActivityForResult(gallaryIntent, RESULT_SELECT_IMAGE);
        }
     
        /*
        * This function is called when we pick some image from the album
        * */
        @Override
        protected void onActivityResult(int requestCode, int resultCode, Intent data) {
            super.onActivityResult(requestCode, resultCode, data);
     
            if (requestCode == RESULT_SELECT_IMAGE && resultCode == RESULT_OK && data != null){
                //set the selected image to image variable
                Uri image = data.getData();
                imageView.setImageURI(image);
     
                //get the current timeStamp and strore that in the time Variable
                Long tsLong = System.currentTimeMillis() / 1000;
                timestamp = tsLong.toString();
     
                Toast.makeText(getApplicationContext(),timestamp,Toast.LENGTH_SHORT).show();
            }
        }
     
        private String hashMapToUrl(HashMap<String, String> params) throws UnsupportedEncodingException {
            StringBuilder result = new StringBuilder();
            boolean first = true;
            for(Map.Entry<String, String> entry : params.entrySet()){
                if (first)
                    first = false;
                else
                    result.append("&");
     
                result.append(URLEncoder.encode(entry.getKey(), "UTF-8"));
                result.append("=");
                result.append(URLEncoder.encode(entry.getValue(), "UTF-8"));
            }
     
            return result.toString();
        }
     
     
        //async task to upload image
        private class Upload extends AsyncTask<Void,Void,String>{
            private Bitmap image;
            private String name;
     
            public Upload(Bitmap image,String name){
                this.image = image;
                this.name = name;
            }
     
            @Override
            protected String doInBackground(Void... params) {
                ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
                //compress the image to jpg format
                image.compress(Bitmap.CompressFormat.JPEG,100,byteArrayOutputStream);
                /*
                * encode image to base64 so that it can be picked by saveImage.php file
                * */
                String encodeImage = Base64.encodeToString(byteArrayOutputStream.toByteArray(),Base64.DEFAULT);
     
                //generate hashMap to store encodedImage and the name
                HashMap<String,String> detail = new HashMap<>();
                detail.put("name", name);
                detail.put("image", encodeImage);
     
                try{
                    //convert this HashMap to encodedUrl to send to php file
                    String dataToSend = hashMapToUrl(detail);
                    //make a Http request and send data to saveImage.php file
                    String response = Request.post(SERVER,dataToSend);
     
                    //return the response
                    return response;
     
                }catch (Exception e){
                    e.printStackTrace();
                    Log.e(TAG,"ERROR  "+e);
                    return null;
                }
            }
     
     
     
            @Override
            protected void onPostExecute(String s) {
                //show image uploaded
                Toast.makeText(getApplicationContext(),"Image Uploaded",Toast.LENGTH_SHORT).show();
            }
        }
    }
    --exppress.js

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    //-------------------
    app.post('/up', function(req, res) {
    	 //var image = req.body.photo.name || img.name;
        console.log(req.files.image.originalFilename);
        console.log(req.files.image.path);
            fs.readFile(req.files.image.path, function (err, data){
            var dirname = "/home/syrine01/Public/cloud_solution/file_upload";
            var newPath = dirname + "/uploads/" +req.files.image.originalFilename;
     
            fs.writeFile(newPath, data, function (err) {
            if(err){
            res.json({'response':"Error"});
            }else {
            res.json({'response':"Saved"});
    }
    });
    });
    });
    merci a résoudre le probléme

Discussions similaires

  1. IIS 7 HTTP Error 500.19 - Internal Server Error
    Par patrice419 dans le forum Développement Web avec .NET
    Réponses: 0
    Dernier message: 01/12/2010, 15h17
  2. HTTP Error 500.19 - Internal Server Error
    Par elgafsi86 dans le forum Réplications
    Réponses: 0
    Dernier message: 18/03/2010, 09h23
  3. abort: HTTP Error 500: Internal Server Error
    Par cyberps2 dans le forum Autres DVCS
    Réponses: 1
    Dernier message: 14/10/2009, 11h59
  4. redirection impossible => error 500 !
    Par alfigor dans le forum ASP
    Réponses: 4
    Dernier message: 26/04/2004, 10h02

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo