【问题标题】:Uploadcare save URL in database PHPUploadcare在数据库PHP中保存URL
【发布时间】:2017-01-29 10:05:33
【问题描述】:

我遇到了一些可能对使用 uploadcare.com(或类似网站)保存用户个人资料图片的人有用的东西。如果问题已得到解答但我没有找到,请提前抱歉。

问题:我目前正在使用 Uploadcare.com 编写脚本。这是我使用的文档:https://uploadcare.com/quick_start/php/

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

我从

获取 URL
$file->getUrl(); 

在本地脚本上,我还可以将用户的其他所有内容保存在数据库中。

只是 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>

照片上传.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(); -->

我可能还会弄乱脚本的执行顺序吗?

【问题讨论】:

    标签: php html mysql forms uploadcare


    【解决方案1】:

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

    不知道为什么你在registration.php中嵌入了formphoto.php,但是我直接在注册表中放置了输入标签并且做了一些小的更正,这应该可以工作:

    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>
    

    照片上传.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>
    

    您需要将这两个文件放在您的网络服务器的 DOCUMENT_ROOT 下,并确保它对这两个文件都具有正确的访问权限:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-11-17
      • 2016-05-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-10-26
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多