2015-08-08 1 views
0

je reçois une erreur 400 mauvaise requête en essayant de télécharger à cloudinary avec le code suivant:Upload direct Cloudinary à partir du navigateur Bad Request

$("input.cloudinary-fileupload[type=file]").cloudinary_fileupload(); 
$.cloudinary.config({"api_key":"6586856745648955","cloud_name":"some-cloud"}); 

    $http.get("http://localhost:3000/story/secret") 
    .then(function(res){ 
    var CLOUD_API_SECRET = res.data.CLOUD_API_SECRET; 
    var obj = 
    { 
     "timestamp": Date.now(), 
     "callback": "http://localhost:3000/cloudinary_cors", 
     "signature": CLOUD_API_SECRET, 
     "api_key": "6586856745648955" 
    }; 
    // var data = JSON.stringify(obj); 
    $("input[type='file']").attr('data-form-data', obj); 
    }) 
    .catch(function(err){ 
    console.log("error: ", err); 
    }); 

avec mon avant contenant les éléments suivants:

<input name="file" type="file" 
    class="cloudinary-fileupload" data-cloudinary-field="image_upload" 
    data-form-data=" ... html-escaped JSON data ... " > 
</input> 

J'ai aussi essayé de stringify, puis coder la variable « obj » et branchez que comme ceci:

var data = JSON.stringify(obj); 
$("input[type='file']").attr('data-form-data', encodeURI(data)); 

J'ai la même erreur.

J'apprécierais n'importe quelle aide ou suggestions. merci beaucoup.

Répondre

1

Il y a quelques problèmes ici:

  1. api_secret de Votre compte ne doit jamais être révélé dans votre code côté client.
  2. La signature n'est pas le api_secret, vous devez générer une signature basée sur votre api_secret et les options de téléchargement. Pour plus d'informations: http://cloudinary.com/documentation/upload_images#request_authentication. La génération de signature doit être effectuée côté serveur. Cloud12 s'attend à ce que la signature soit basée sur l'horodatage en secondes et non en millisecondes, les 3 derniers chiffres ne sont donc pas nécessaires. Par conséquent, je vous recommande de diviser l'horodatage par 1000 pour omettre les 3 derniers chiffres (par exemple, Date.now()/1000)
+0

ohhhh. je vois. sensationnel. Je faisais tout faux. Merci de clarifier. Je viens de terminer l'implémentation du noeud, après tout. c'était beaucoup plus facile pour moi de comprendre. J'apprécie ta réponse! – spb