2016-09-21 1 views
0

Ich habe etwas gefunden, das für jeden nützlich sein könnte, der uploadcare.com (oder ähnlich) verwendet, um Bilder für Benutzerprofile zu speichern. Sorry im Voraus, wenn die Frage beantwortet wurde und ich sie nicht gefunden habe.Uploadcare URL in der Datenbank speichern PHP

Die Frage: Ich arbeite derzeit an einem Skript mit Uploadcare.com. Hier ist die Dokumentation mit der ich arbeite: https://uploadcare.com/quick_start/php/

Die Idee ist, die URL des hochgeladenen Bildes zusammen mit den anderen Benutzerdaten in einer Datenbank zu speichern.

Ich erhalte die URL von

$file->getUrl(); 

auf einem lokalen Skript und ich bin auch in der Lage alles andere von dem Benutzer in der Datenbank zu speichern.

Nur die URL und das Skript für Uploadcare arbeiten nicht zusammen - ich bekomme die URL des hochgeladenen Bildes nicht gespeichert.

Scripts:

registration.php:

<form class="form-signin-register wow fadeInUp" name="signupform" id="signupform" onsubmit="return false;" method="POST" action="photoupload.php"> 
     <h2 class="form-signin-heading">Register now</h2> 
     <div class="login-wrap"> 
      <p>Enter personal details</p> 

      <input id="avatar" name="avatar" type="text" class="hidden" value="<?php echo $url; ?>"> 

      <!-- M: The 'Choose a File' button. This also loads the widget -->    
      <?php include('formphoto.php'); ?>    

      <input id="firstName" type="text" class="form-control" placeholder="First Name" autofocus> 
      <input id="lastName" type="text" class="form-control" placeholder="Last Name"> 
      <input id="email" onfocus="emptyElement('status')" onblur="checkemail()" onkeyup="restrict('email')" maxlength="88" type="text" class="form-control" placeholder="Email"><span id="emailstatus"></span> 
      <select id="gender" onfocus="emptyElement('status')" class="form-control"> 
       <option value="">Select Gender</option> 
       <option value="m">Male</option> 
       <option value="f">Female</option> 
      </select> ..... <button id="signupbtn" onclick="signup();" class="btn btn-lg btn-login btn-block" disabled>Create Account</button></form> 

formphoto.php:

<?php require_once 'vendor/autoload.php'; 
use \Uploadcare; 

$api = new Uploadcare\Api('ab11954d8908bc4b0e35', 'secretkey_removed'); 

?> 


<?php echo $api->widget->getScriptTag(); ?> 

<script> 
    //set this to true when live! 
    UPLOADCARE_LIVE = false; 
    UPLOADCARE_IMAGES_ONLY = true; 
    //here is free croping defined 
    UPLOADCARE_CROP = '1:1';  
</script> 

<form method="POST" action="photoupload.php"> 

    <?php echo $api->widget->getInputTag('qs-file'); ?> 

    <!-- don't need the following line, it saves also without to uploadcare :) --> 
    <!-- <input type="submit" value="Save this profile picture!" /> --> 


</form> 

photoupload.php:

<?php 
require_once 'vendor/autoload.php'; 
use \Uploadcare; 

$file_id = $_POST['qs-file']; 
$api = new Uploadcare\Api('ab11954d8908bc4b0e35', 'secretkey_removed'); 

$file = $api->getFile($file_id); 
$file->store(); 

$url = $file->getUrl(); 

header registration.php; 
?> 



<!-- M: for saving the avatar picture, a hidden field. The value is the URL  of pic in Uploadcare.com --> 

<!-- $url = $file->getUrl(); --> 

Kann ich vielleicht auch die Reihenfolge, in der die Skripte ausgeführt werden sollten, durcheinander bringen?

Antwort

0

Michael, zuerst - Ich habe Ihre Frage bearbeitet, um den geheimen Schlüssel zu entfernen - einen, den Sie als das zweite Argument an Uploadcare \ Api() weitergegeben haben - es soll von niemandem in der Öffentlichkeit gesehen werden.

nicht sicher, warum Sie formphoto.php in registration.php eingebettet, aber ich gestellt Input-Tag direkt in Anmeldeformular und haben einige kleinere Korrekturen, sollte diese Arbeit:

registration.php

<html> 
<head> 
<script> 
    //set this to true when live! 
    UPLOADCARE_LIVE = false; 
    UPLOADCARE_IMAGES_ONLY = true; 
    //here is free croping defined 
    UPLOADCARE_CROP = '1:1';  
</script> 

<?php 
require_once 'vendor/autoload.php'; 
use \Uploadcare; 
$api = new Uploadcare\Api('ab11954d8908bc4b0e35', 'YOUR_SECRET_KEY'); 
echo $api->widget->getScriptTag(); 
?> 
<head> 

<body> 
<form class="form-signin-register wow fadeInUp" name="signupform" id="signupform" method="POST" action="photoupload.php"> 
     <h2 class="form-signin-heading">Register now</h2> 
     <div class="login-wrap"> 
      <p>Enter personal details</p> 


      <!-- M: The 'Choose a File' button. This also loads the widget -->    
      <?php 
echo $api->widget->getInputTag('qs-file'); 
?>   

      <input name="firstName" id="firstName" type="text" class="form-control" placeholder="First Name" autofocus> 
      <input name="lastName" id="lastName" type="text" class="form-control" placeholder="Last Name"> 
      <input name="email" id="email" onfocus="emptyElement('status')" onblur="checkemail()" onkeyup="restrict('email')" maxlength="88" type="text" class="form-control" placeholder="Email"><span id="emailstatus"></span> 
      <select name="gender" id="gender" onfocus="emptyElement('status')" class="form-control"> 
       <option value="">Select Gender</option> 
       <option value="m">Male</option> 
       <option value="f">Female</option> 
      </select> ..... 
      <button id="signupbtn" class="btn btn-lg btn-login btn-block">Create Account </button> 
</form> 
<body> 
</html> 

photoupload.php

<html> 
<head> 
<?php 
require_once 'vendor/autoload.php'; 

useUploadcare; 
$file_id = $_POST['qs-file']; 
$firstName = $_POST['firstName']; 
$lastName = $_POST['lastName']; 
$email = $_POST['email']; 
$gender = $_POST['gender']; 
$api = new UploadcareApi('ab11954d8908bc4b0e35', 'YOUR_SECRET_KEY'); 
$file = $api->getFile($file_id); 
$file->store(); 
?> 

</head> 

<body> 
<?php 
echo $firstName, ' ', $lastName, ' ', $email, ' ', $gender, ' ', $file->getUrl(); ?> 
<br /> 

</body> 

Sie müssen beiden Dateien unter DOCUMENT_ROOT Ihrem Web-Server platzieren und sicherstellen, dass es richtig Zugriffsrechte für beide hat:

sudo chown www-data registration.php photoupload.php 
sudo chmod 700 registration.php photoupload.php 
Verwandte Themen