Поддержка Dcms-Social - DS v.1.8.x-1.9.0 - Отправка Принт скрин в почте - пост №1301 
Поддержка Dcms-Social - DS v.1.8.x-1.9.0 - Отправка Принт скрин в почте - пост №1301
Онлайн 10 авг 2019 18:58
нам потребуется
1. Таблица в бд mail_files
[in]
CREATE TABLE IF NOT EXISTS `mail_files` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`id_user` int(11) NOT NULL,
`id_mail` int(11) NOT NULL,
`name` varchar(32) CHARACTER SET utf8 COLLATE utf8_unicode_ci DEFAULT NULL,
`ras` varchar(32) CHARACTER SET utf8 COLLATE utf8_unicode_ci DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `time` (`time`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;
[/in]
2. Создать папку sys/mail и выставить права 777
3. Файл screen.php
тут стандартная шапка
[in]
$dаtа = $_POST['avatar'];
$NAME_FILE = substr_replace(sha1(microtime(true)), '', 12);
mysql_query("INSERT INTO `mail_files` (`id_user`, `id_mail`, `name`, `ras`) VALUES ('".$user['id']."', '0', '".$NAME_FILE."', 'png')");


list($type, $dаtа) = explode(';', $dаtа);
list(, $dаtа) = explode(',', $dаtа);
$dаtа = bаsе64_decode($dаtа);
file_put_contents(H.'sys/mail/' . $NAME_FILE. '.png', $dаtа);
@chmod(H.'sys/mail/' . $NAME_FILE. '.png', 0777);
$succes = true;
$result = "success";
echo $result;
[/in]
4. Открываем файл mail.php
- где отправка сообщений
после mysql_query("INSERT INTO `mail` (`id_user`, `id_kont`, `msg`, `time`) values('$user[id]', '$ank[id]', '".my_esc($msg)."', '$time')");
вставим
[in]
$ID_MAIL = mysql_insert_id();
$res = mysql_query("SELECT * FROM `mail_files` WHERE `id_user` = '".$user['id']."' AND `id_mail` ='0'");
while ($row = mysql_fetch_assoc($res))
{
mysql_query("UPDATE `mail_files` SET `id_mail` = '".$ID_MAIL."' WHERE `id` = '".$row['id']."' LIMIT 1");
}
[/in]
если у textarea нет id добавим id="screen", если есть оставляем и запомним наш id
После </form> добавим
[in]
echo '<img id="preview"></img>';
[/in]
После echo output_text($post['msg'])."\n";
вставим вывод наших файлов стили своими ручками, рекомендую display flex
[in]
echo "<div class='sort-file'>";
$res = mysql_query("SELECT * FROM `mail_files` WHERE `id_user` = '".$ank2['id']."' AND `id_mail` ='".$post['id']."'");
while ($row = mysql_fetch_assoc($res))
{
$ras = $row['ras'];
if ($ras=='jpg' || $ras=='png' || $ras=='gif' || $ras=='jpeg'){
echo '<div class="sort-files">';
echo '<a href="/sys/mail/'.$row['name'].'.'.$row['ras'].'" target="_blank">';
echo '<div class="sort-files-img"><img src="/sys/mail/'.$row['name'].'.'.$row['ras'].'"></div>';
echo '<span>'.$row['name_file'].'.'.$row['ras'].'</span>';
echo '</a>';
echo '</div>';
} else {
echo '<div class="sort-files">';
echo '<a href="/sys/mail/'.$row['name'].'.'.$row['ras'].'" target="_blank">'.$row['name_file'].'.'.$row['ras'].'</a>';
echo '</div>';
}
echo '<div class="clear"></div>';
}
echo "</div>\n";
[/in]
теперь сам скрипт
[in]
<script>
document.getElementById('тут id нашей textarea').onpaste = function (event) {
var items = (event.clipboarddаtа || event.originalEvent.clipboarddаtа).items;
console.log(JSON.stringify(items) );
// find pasted image among pasted items
var blob = null;
for ( var i = 0; i < items.length; i++ ) {
if (items[i].type.indexOf("image") === 0) {
blob = items[i].getAsFile();
}
}
if (blob !== null) {
var reader = new FileReader();
reader.onload = function(event) {
console.log(event.target.result);
document.getElementById("preview").src = event.target.result;
myimg(event.target.result)
};
reader.readAsdаtаURL(blob);
}
}

function myimg(dаtа){
var formdаtа = new Formdаtа();
formdаtа.append('avatar', dаtа);
$.ajax({
type:'POST',
url: '/screen.php',
dаtа: formdаtа,
cache:false,
contentType: false,
processdаtа: false,
success:function(dаtа){
console.log(dаtа);//тут можно придумать анимацию загрузки
},
error:function(dаtа){
console.log(dаtа);
}
});
}
</script>
[/in]
если скрипт не срабатывает попробуйте подключить jQuery
данный скрипт позволит вам отправлять скрины как вк, PrintScreenSysRq, а далее ctrl+V
Главная » Форум » Поддержка Dcms-Social » DS v.1.8.x-1.9.0 » Назад в тему
Gen: 0.039 | Cpu: 2543 кб.