Показать сообщение отдельно
  #1 (permalink)  
Старый 13.12.2013, 18:04
Интересующийся
Отправить личное сообщение для Rompo Посмотреть профиль Найти все сообщения от Rompo
 
Регистрация: 25.02.2012
Сообщений: 14

Работа с textarea
Нашел скрипт для управления веб-камерой, все работает, все замечательно, но возникла проблема с добавлением описания к сделанным фото. Дело с том, что после того, как предварительно захватив изображение, появляются кнопки "переснять" и "сохранить", я попытался добавить еще элемент формы 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
Ответить с цитированием