2016-09-27 5 views
1

dies ist mein Code über cloudinary Upload durch Widget leider Upload Fehler i ... Ich bin auf localhost, und die Seite, wo dieser Code platziert ist add.php SeiteCloudinary wie erzeugen Unterschrift in php

<script src="//widget.cloudinary.com/global/all.js" type="text/javascript"></script> 
<script type="text/javascript"> 
    var generateSignature = function(callback, params_to_sign){ 
    $.ajax({ 
     url  : "http://localhost/add.php?public_id=sample_image&timestamp=1315060510", 
     type : "GET", 
     dataType: "text", 
     data : { data: params_to_sign}, 
     complete: function() {console.log("complete")}, 
     success : function(signature, textStatus, xhr) { callback(signature); }, 
     error : function(xhr, status, error) { console.log(xhr, status, error); } 
    }); 
    } 
</script> 


    <script type="text/javascript"> 
     $('#upload_widget_opener').cloudinary_upload_widget(
     { cloud_name: 'dammiunparere', api_key: '189XXXX42445355', 
      upload_signature: generateSignature}, 

     function(error, result) { console.log(error, result) }); 
    </script> 
+0

Ist dies ein Fehler "ungültige Signatur", den Sie sehen? Ich sehe, dass Sie einige Abfrage-String-Parameter in der "URL" zusätzlich zu dem "params_to_sign" übergeben. Beachten Sie, dass Cloudinary erwartet, dass Sie ** nur ** signieren, was sich in "params_to_sign" befindet. –

Antwort

0

Vor kurzem versucht, mit dieser Frage aussortieren. Hier ist eine einfache Lösung:

Es muss Skript auf Ihrem Server, um die Signatur zu generieren, in diesem Fall ist es eine Datei namens "add.php".

<?php 
    define('CINCDIR', './inc/cloudinary/'); // path to cloudinary lib folder 

    require_once(CINCDIR . 'Cloudinary.php'); 
    require_once(CINCDIR . 'Api.php'); 

    if(isset($_GET['data'])) 
    { 
     echo \Cloudinary::api_sign_request($_GET['data'], '[PUT CLOUDINARY API SECRET HERE]'); 
    } 
?> 

ersetzen [PUT CLOUDINARY API SECRET HIER] mit Ihrem cloudinary api Geheimnis: Es sollte etwas ähnliches enthalten.

Dieses Skript benötigt die PHP-Integrationsbibliothek von cloudinary. Sie sollten in der Lage sein, es von folgendem Link herunterzuladen: https://github.com/cloudinary/cloudinary_php/tarball/master. Kopieren Sie alle Dateien aus dem src-Ordner in Ihrem PHP-Projekt und sind Cloudinary PHP-Klassen in Ihrem Code:

require_once(CINCDIR . 'Cloudinary.php'); 
require_once(CINCDIR . 'Api.php'); 

Auch über JavaScript aus Ihrem Beispiel oben, die Sie nicht vordefinierte Parameter hier geben müssen:

url  : "http://localhost/add.php?public_id=sample_image&timestamp=1315060510" 

Nur URL des Skripts, in diesem Fall ist es "http://localhost/add.php" ist:

url  : "http://localhost/add.php" 

Parameter automatisch hinzugefügt, wenn generateSignature-Funktion wird aufgerufen.