Uploadcare在数据库中保存URL PHP

问题描述:

我遇到了一些可能对使用uploadcare.com(或类似)保存用户配置文件图片的人有用的东西。如果问题得到解答,我很抱歉,但我还没有找到答案。Uploadcare在数据库中保存URL PHP

问题:我目前正在致力于Uploadcare.com的脚本。这里是我工作的文档:https://uploadcare.com/quick_start/php/

这个想法是将上传图片的URL和其他用户数据一起保存在数据库中。

我从

$file->getUrl(); 

上的本地脚本的URL,我能还可以节省一切从数据库中的用户。

只是URL和Uploadcare脚本不会一起运行 - 我没有得到保存的上传图像的URL。

脚本:

为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(); --> 

我是否也搞乱了脚本执行的顺序?

迈克尔,首先 - 我编辑了您的问题以删除密钥 - 您作为Uploadcare \ Api()的第二个参数传递的密钥 - 它不应该在公开场合被任何人看到。

不知道为什么你嵌入和registration.php formphoto.php,但我直接在报名表放在input标签,做一些小的修正,这应该工作:

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> 

您需要将在你的Web服务器的DOCUMENT_ROOT这两个文件,并确保它有两个正确的访问权限:

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