ok ici c'est: (Je change le contenu de ce post pour la troisième fois pour mieux expliquer) p>
Mon site Web est un site Web STR> Hébergement d'images strong>, ce qui signifie que l'utilisateur peut télécharger sur mon site Web et recevoir un lien direct vers son image téléchargée. em> p>
J'ai besoin d'une sorte d'API / moyen de communiquer de mon site avec mes utilisateurs. Je souhaite que les utilisateurs qui sont enregistrés sur mon site Web puissent La demande à mon site Web devrait inclure un paramètre Donc, fondamentalement, Tous mes essais étaient des blocages sans continue. P>
Premièrement, j'ai ajouté deux nouvelles colonnes à deux tables différentes. Mon em> Tableau des utilisateurs em> reçut une colonne L'utilisateur envoie une demande à mon fort> hôte d'image forte> avec ces paramètres: Mes échecs ici étaient: p>
Pourquoi ces échecs? Une de mes idées pour arrêter d'envoyer des fichiers Alors, c'est ce qui est: mon gros problème sans solution de moi-même. Merci.
Si je pouvais juste recevoir le fichier d'une manière ou d'une autre (asynchrone), je l'enregistrerais dans la base de données avec le champ Si cette nouvelle idée de mienne est exploitable, merci de me le faire savoir. P> & demande = API code> afin que l'utilisateur obtienne un texte brut de mon script upload.php. De cette façon, je pense que je m'assure un moyen plus facile de saisir des données / sorties de mon site. P>
Ce que j'ai essayé: h1>
API_KEY CODE> destiné à stocker une clé API si l'utilisateur s'inscrit réellement pour cela. L'autre colonne
is_api code> a été ajoutée à la table dans laquelle je stocke informations d'image em>, seuls les utilisateurs enregistrés ont leurs images stockées dans la base de données. Avec cette nouvelle colonne (qui était de type
tinyint code>), je voulais vérifier que l'image provenant de l'utilisateur était (ou non) ajoutée / téléchargée via l'API. P>
upload.php? Soumettre = true & action = Upload & Demande = API & Key = _Some_api_key _ code>. Je prends la clé API et vérifie à qui il appartient -> Récupérer un ID utilisateur basé sur cette touche -> Je stocke l'image sur My Server -> Je stocke les informations d'image dans ma base de données (avoir un identifiant utilisateur maintenant) -> i < Code> Echo Code> Out l'URL. P>
$ _ [] code> à mon l'hôte de l'image forte>, essayait d'envoyer une chaîne d'image
Si vous avez besoin de plus d'informations pour m'aider plus facilement, demandez-moi. P>
p>
Mise à jour h2>
is_api code> avec une valeur de
visualis.php cod> peut-être et il accepterait également certains paramètres comme
Viewer.php? Demande = API & Key = _api_key _ code> et il retournerait un Page JSON avec le lien vers la dernière image de ce API externe STRAND> UTILISATEUR. Récupération de la page via JSON par le site Web tiers serait assez facile. Ainsi, avec cette méthode, j'ai essentiellement besoin de recevoir l'image en quelque sorte dans mon Strong> Hôte d'image forte> et la partie récupération ne serait pas trop difficile. Alors, comment j'enverrais une chaîne d'image
5 Réponses :
Essayez d'utiliser
$.getJSON()
On dirait qu'ils utilisent un formulaire Web, vous devez donc utiliser strictement la poste. Il n'y a pas de gémissement à l'aide d'un script quelque part si vous souhaitez que le client vous envoie une chaîne (mais pourquoi les auriez-vous faire cela?).
S'ils sont post-être un formulaire, utilisez la méthode postale, puis une utilisation du script côté serveur met à écrire sur un serveur d'API backend, qui retournera une page JSON avec le lien vers la dernière image. P >
S'ils écrivent directement à l'API, suivez la même convention, à l'exception de votre utilisateur utilisera Met directement (Mettre n'est pas disponible sur des formulaires Web, juste après et obtenez). P>
EDIT: J'ai une solution possible pour vous pour le côté client à l'aide de HTML5. Vous pouvez mettre l'image dans une toile HTML5 et convertir les données en chaîne. Ensuite, prenez simplement cette chaîne et postez-la via la forme. Voir Cette réponse pour plus d'informations sur la façon de faire cela. P>
<label>Image File:</label><br/> <input type="file" id="imageLoader" name="imageLoader"/> <canvas id="imageCanvas"></canvas> <script> var imageLoader = document.getElementById('imageLoader'); imageLoader.addEventListener('change', handleImage, false); var canvas = document.getElementById('imageCanvas'); var ctx = canvas.getContext('2d'); function handleImage(e){ var reader = new FileReader(); reader.onload = function(event){ var img = new Image(); img.onload = function(){ canvas.width = img.width; canvas.height = img.height; ctx.drawImage(img,0,0); } img.src = event.target.result; } reader.readAsDataURL(e.target.files[0]); /** replace readAsDataURL() with something that will read it to a string. Reference: https://developer.mozilla.org/en-US/docs/DOM/FileReader **/ } </script>
S'il vous plaît jeter un oeil à mon Classe de Resterver sur Github . Cela vous permettra de transformer n'importe quelle classe PHP en un service Web reposant (Retourner les réponses JSON). JSON est la voie à suivre pour que ces types de réponses et Resterver s'occupent d'encoder vos objets de retour en tant que JSON avant de renvoyer les données au client.
Vous pouvez faire des demandes d'obtention comme Il détectera automatiquement les paramètres nécessaires à la méthode demandée. Vous pouvez configurer une clé d'API secrete et avoir cela comme paramètre requis pour chaque méthode d'API à des fins d'authentification. P> alors vous feriez simplement l'appel en utilisant http://mysite.com/myapi.php?method=sayhello&name=world code> où la chaîne de requête nécessite un nom de méthode et chaque paramètre de cette méthode. Les demandes postales sont également prises en charge en modifiant simplement votre demande de poste et incluant vos paramètres dans le corps de poste. P>
Que diriez-vous de recevoir la demande d'origine du site 3ème partie à votre hôte d'image à l'aide de votre message Upload.php thru, puis à l'intérieur de Upload.php, vous acheminez la demande à une autre page à l'aide de l'appel Ajax. De cette façon, il sera asynchrone. Je pense que c'est réalisable de cette façon. P>
Je fournis un script comme celui-ci à mes utilisateurs en tant que pont sur mon site Web: puis je fais le reste du traitement sur mon site Web en fonction des informations que je reçois. Je mettrai la mise à jour cette réponse une fois que j'ai terminé l'API CP complet sur mon site Web, où le webmaster qui utilise l'API peut voir quelles images ont été téléchargées via son site Web à mon hôte de l'image. Du script ci-dessus, vous pouvez voir une clé API - elle est unique pour chaque utilisateur, celle ci-dessus n'est qu'un échantillon. P> pour asynchrone, je l'ai fait fonctionner en disant aux utilisateurs d'utiliser les jQuery Formulaire em> plugin. C'est un plugin très pratique pour soumettre des formulaires et je montre à l'utilisateur comment ils le feraient. P> Merci pour tous ceux qui ont essayé de m'aider. P> P>
Avez-vous essayé d'envoyer le lien via JSON ou XML à un client AJAX ou l'avez-vous envoyé au client AJAX en texte saisi?
Je n'ai rien essayé avec Json, car je n'ai aucune idée de la façon de l'utiliser, d'où la question. Mes connaissances Ajax sont aussi assez limitées.
On dirait que cela pourrait être traité très simplement dans un iframe qui contient une forme réelle qui publie à l'hôte de l'image. Cela ressemblera à Ajax (comme l'Iframe empêche le poste de page complète) et vous pouvez renvoyer les liens de la page résultante comme réponse directe sur l'IFrame.
@Gavin pourriez-vous me montrer un exemple de ce que vous dites? Peut-être que votre réponse fonctionnerait réellement et je pourrais alors l'accepter.
Jetez un coup d'oeil à ce Viralpatel.net/blogs/... < / a>
Je ne sais pas si c'est faisable. Cela ressemble à quelque chose que le navigateur voudrait s'arrêter en raison des préoccupations de sécurité. La façon dont je l'ai vue, c'est pour que le serveur tiers accepte le téléchargement, puis transférez-le sur le serveur de site d'hébergement d'images sur le serveur. La largeur de bande entre les hôtes est généralement assez élevée, de sorte que les frais généraux sont acceptables.
@cleong J'ai édité la question, veuillez le lire maintenant.