Поддержка 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 |