Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Ajax + PHP обработка изображения
Форумы портала PHP.SU » » HTTP и PHP » Ajax + PHP обработка изображения

Страниц (1): [1]
 

1. MrCris - 14 Ноября, 2014 - 08:28:44 - перейти к сообщению
Суть такая. Есть база sql с таблицей temp [id,name]. Где name - MEDIUMBLOB.
Есть форма, которая активируется после регистрации. В ней картинка (аватарка, стоит стандарт с id=1: src="temp.php?id=1").
При нажатии на картинку выводится модульное окно, с формой смены картинки.

<div class="modal-body" style="text-align: center;">
<img src="image.php?id=1" alt="Фото" id="src_name"/>
</div>
<div class="modal-footer">
<span class="btn fileinput-button"><span>Изменить</span>
<input type="file" id="files" name="files[]" multiple onChange="readURL(this);" accept="image/jpeg,image/png,image/gif">
</span>
</div>

Интересует строка <input type="file" id="files" name="files[]" multiple onChange="readURL(this);" accept="image/jpeg,image/png,image/gif">

Соответсвенно:

<script type="text/javascript">
function readURL(input)
{
if (input.files && input.files[0])
{
var reader = new FileReader();
reader.onload = function (e)
{
$('#src_name').attr('src', e.target.result);
$.ajax
({
type:"POST",
url:"load_image.php",
data: "image="+e.target.result,
success: image_stat
});
}
reader.readAsDataURL(input.files[0]);
}
}
</script>

<script type="text/javascript">
function image_stat(name)
{
document.getElementById('src_name').src="temp_image.php?id="+name;
}
</script>

И PHP load_image.php
<?php
<..подключение к базе..>
$src= trim($_POST['image']);
$link = mysql_connect($host,$user,$pass);
mysql_select_db($bd);
$upload = mysql_real_escape_string(file_get_contents($src));
$res = mysql_query("INSERT INTO temp (name) VALUES ('.$upload.')");
echo mysql_insert_id();
?>

Картинка загружается в базу, размер совпадает. Но вот выводиться совсем не хочет. Хотя если загрузить эту же картинку напрямую через PhpMyAdmin, все выводиться.

Что может быть?
2. esterio - 14 Ноября, 2014 - 10:12:50 - перейти к сообщению
1. никто не хранит картинки в базе
2. такой аплоад работает только в современних браузерах
3. оформляйте код с помощю тегов code
4. в
MrCris пишет:
e.target.result
кажется должны быть ArrayBuffer, но никак не строка
5.
MrCris пишет:
$upload = mysql_real_escape_string(file_get_contents($src));

зачм читать с файла, у вас там строка, а вы передает в функцию считивания файла в качестве названия того самого файла. в то время у вас там строка з данними о картинке
моджна использовать FormData для $_FILES.
6. используйте готовый инструмент
3. MrCris - 14 Ноября, 2014 - 10:32:57 - перейти к сообщению
...

 

Powered by ExBB FM 1.0 RC1