HTML — Uploadcare сохранить URL-адрес в базе данных переполнения стека

Я столкнулся с чем-то, что может пригодиться любому, кто использует 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>

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

Могу ли я также испортить порядок выполнения скриптов?

0

Решение

Майкл, первый — я отредактировал твой вопрос, чтобы удалить секретный ключ — тот, который ты передал в качестве второго аргумента для Uploadcare \ Api () — никто не должен его видеть публично.

Не уверен, почему вы ввели formphoto.php в registration.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>

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>

Вам нужно поместить оба файла в DOCUMENT_ROOT вашего веб-сервера и убедиться, что они имеют правильные права доступа для обоих:

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

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]