Нашел скрипт для управления веб-камерой, все работает, все замечательно, но возникла проблема с добавлением описания к сделанным фото. Дело с том, что после того, как предварительно захватив изображение, появляются кнопки "переснять" и "сохранить", я попытался добавить еще элемент формы textarea, но вот собственно сам текст не удается обработать, пытался передавать его обычным POST, но думаю php тут не обойтись, а js у меня плоховато
Может кто-нибудь подскажет, поможет как это сделать?
$(document).ready(function(){
var camera = $('#camera'),
photos = $('#photos'),
screen = $('#screen');
var template = '<a href="uploads/original/{src}" rel="cam" '
+'style="background-image:url(uploads/thumbs/{src})"></a>';
/*----------------------------------
Установки веб камеры
----------------------------------*/
webcam.set_swf_url('assets/webcam/webcam.swf');
webcam.set_api_url('upload.php'); // Скрипт загрузки
webcam.set_quality(80); // Качество фотографий JPEG
webcam.set_shutter_sound(true, 'assets/webcam/shutter.mp3');
// Генерируем код HTML для камеры и добавляем его на страницу:
screen.html(
webcam.get_html(screen.width(), screen.height())
);
/*------------------------------
Обработчики событий
-------------------------------*/
var shootEnabled = false;
$('#shootButton').click(function(){
if(!shootEnabled){
return false;
}
webcam.freeze();
togglePane();
return false;
});
$('#cancelButton').click(function(){
webcam.reset();
togglePane();
return false;
});
$('#uploadButton').click(function(){
webcam.upload();
webcam.reset();
togglePane();
return false;
});
camera.find('.settings').click(function(){
if(!shootEnabled){
return false;
}
webcam.configure('camera');
});
// Показываем и скрываем панель камеры:
var shown = false;
$('.camTop').click(function(){
$('.tooltip').fadeOut('fast');
if(shown){
camera.animate({
bottom:-466
});
}
else {
camera.animate({
bottom:-5
},{easing:'easeOutExpo',duration:'slow'});
}
shown = !shown;
});
$('.tooltip').mouseenter(function(){
$(this).fadeOut('fast');
});
/*----------------------
Возвратные вызовы
----------------------*/
webcam.set_hook('onLoad',function(){
// Когда FLASH загружен, разрешаем доступ
// к кнопкам "Снимаю" и "Установка"
shootEnabled = true;
});
webcam.set_hook('onComplete', function(msg){
// Данный ответ возвращается upload.php
// и содержит имя изображения в формате объекта JSON
msg = $.parseJSON(msg);
if(msg.error){
alert(msg.message);
}
else {
// Добавляем его на страницу
photos.prepend(templateReplace(template,{src:msg.filename}));
initFancyBox();
}
});
webcam.set_hook('onError',function(e){
screen.html(e);
});
Далее получаем jpeg-файл
<?php
session_start();
include ("blocks/bd.php");
/*
Данный скрипт получает снимок JPEG
из webcam.swf как запрос POST.
*/
// Нам нужно обрабатывать только запрос POST:
if(strtolower($_SERVER['REQUEST_METHOD']) != 'post'){
exit;
}
$folder = 'uploads/';
$filename = md5($_SERVER['REMOTE_ADDR'].rand()).'.jpg';
$original = $folder.$filename;
// Снимок JPEG отправляется в необработанном виде:
$input = file_get_contents('php://input');
if(md5($input) == '7d4df9cc423720b7f1f3d672b89362be'){
// Черное изображение. Нам оно без надобности.
exit;
}
$result = file_put_contents($original, $input);
if (!$result) {
echo '{
"error" : 1,
"message" : "Ошибка сохранения изображения. Убедитесь, что папка uploads и ее вложенные каталоги имеет chmod 777."
}';
exit;
}
$info = getimagesize($original);
if($info['mime'] != 'image/jpeg'){
unlink($original);
exit;
}
// Перемещаем временный файл в оригинальную папку:
rename($original,'uploads/original/'.$filename);
$original = 'uploads/original/'.$filename;
// Используем библиотеку GD для изменения размера
// для миниатюры:
$w = 260;
$origImage = imagecreatefromjpeg($original);
$w_src = imagesx($origImage);
$h_src = imagesy($origImage);
$newImage = imagecreatetruecolor($w,$w);
imagecopyresampled($newImage,$origImage,0,0,round((max($w_src,$h_src)-min($w_src,$h_src))/2),0,$w,$w,min($w_src,$h_src),min($w_src,$h_src));
imagejpeg($newImage,'uploads/thumbs/'.$filename);
$date = date("Y-m-d");
$result = mysql_query ("INSERT INTO photos (id_user,photo,p_date) VALUES('$_SESSION[id]','$filename','$date')");
echo '{"status":1,"message":"Success!","filename":"'.$filename.'"}';
?>
в таблице photos есть еще одно поле description, в него то и хотел записывать текст из textarea