Messages display image media, prompt to download other media types.

This commit is contained in:
Nate 2018-12-20 22:53:00 -07:00
parent e671586638
commit d359d0cd0b
3 changed files with 47 additions and 8 deletions

View File

@ -42,6 +42,7 @@
//get media uuid
$message_media_uuid = $_GET['id'];
$message_media_source = $_GET['src'];
$action = $_GET['action'];
//get media
if (is_uuid($message_media_uuid)) {
@ -57,7 +58,7 @@
switch (strtolower($media['message_media_type'])) {
case 'jpg':
case 'jpeg': $content_type = 'image/jpg'; break;
case 'jpeg': $content_type = 'image/jpg'; $displaybreak;
case 'png': $content_type = 'image/png'; break;
case 'gif': $content_type = 'image/gif'; break;
case 'aac': $content_type = 'audio/aac'; break;
@ -76,10 +77,23 @@
default: $content_type = 'application/octet-stream'; break;
}
header("Content-type: ".$content_type);
header("Content-Length: ".strlen($media['message_media_content']));
header("Content-Disposition: attachment; filename=\"".$message_media_source."_".$message_media_uuid.".".strtolower($media['message_media_type'])."\"");
echo base64_decode($media['message_media_content']);
switch ($action) {
case 'download':
header("Content-type: ".$content_type);
header("Content-Length: ".strlen($media['message_media_content']));
header("Content-Disposition: attachment; filename=\"".$message_media_source."_".$message_media_uuid.".".strtolower($media['message_media_type'])."\"");
echo base64_decode($media['message_media_content']);
break;
case 'display':
echo " <table cellpadding='0' cellspacing='0' border='0' width='100%' height='100%'>\n";
echo " <tr>\n";
echo " <td align='center' valign='middle'>\n";
echo " <img src=\"data:".$content_type.";base64, ".$media['message_media_content']."\" style='width: auto; max-width: 95%; height: auto; max-height: 800px; box-shadow: 0px 1px 20px #888; cursor: pointer;' onclick=\"$('#message_media_layer').fadeOut(200);\" oncontextmenu=\"document.location.href='message_media.php?id=".$message_media_uuid."&src=".$message_media_source."&action=download'; return false;\" title=\"Click to Close, Right-Click to Save\">\n";
echo " </td>\n";
echo " </tr>\n";
echo " </table>\n";
break;
}
}

View File

@ -83,6 +83,17 @@
echo " box-shadow: 0px 1px 20px #888;\n";
echo " }\n";
echo " #message_media_layer {\n";
echo " z-index: 999999;\n";
echo " position: absolute;\n";
echo " left: 0px;\n";
echo " top: 0px;\n";
echo " right: 0px;\n";
echo " bottom: 0px;\n";
echo " text-align: center;\n";
echo " vertical-align: middle;\n";
echo " }\n";
echo "</style>\n";
//new message layer
@ -143,6 +154,9 @@
echo " </table>\n";
echo "</div>\n";
//message media layer
echo "<div id='message_media_layer' style='display: none;'></div>\n";
//show the content
echo "<table width='100%' border='0'>\n";
echo " <tr>\n";
@ -264,6 +278,13 @@
echo " });\n";
echo " });\n";
//open message media in layer
echo " function display_media(id, src) {\n";
echo " $('#message_media_layer').load('message_media.php?id=' + id + '&src=' + src + '&action=display', function(){\n";
echo " $('#message_media_layer').fadeIn(200);\n";
echo " });\n";
echo " }\n";
echo " refresh_contacts();\n";
echo "</script>\n";

View File

@ -59,7 +59,7 @@
unset ($prep_statement, $sql);
//get media (if any)
$sql = "select message_uuid, message_media_uuid, message_media_type, message_media_url, length(message_media_content) as message_media_size from v_message_media ";
$sql = "select message_uuid, message_media_uuid, message_media_type, length(message_media_content) as message_media_size from v_message_media ";
$sql .= "where user_uuid = '".$_SESSION['user_uuid']."' ";
$sql .= "and (domain_uuid = '".$domain_uuid."' or domain_uuid is null) ";
$sql .= "and message_uuid in ( ";
@ -80,7 +80,6 @@
foreach ($rows as $row) {
$message_media[$row['message_uuid']][$x]['uuid'] = $row['message_media_uuid'];
$message_media[$row['message_uuid']][$x]['type'] = $row['message_media_type'];
//$message_media[$row['message_uuid']][$x]['url'] = $row['message_media_url'];
$message_media[$row['message_uuid']][$x]['size'] = $row['message_media_size'];
$x++;
}
@ -161,7 +160,12 @@
foreach ($message_media[$message['message_uuid']] as $media) {
if ($media['type'] != 'txt') {
echo "<a href='message_media.php?id=".$media['uuid']."&src=".$media_source."' class='message-media-link-".($message['message_direction'] == 'inbound' ? 'em' : 'me')."'>";
if ($media['type'] == 'jpg' || $media['type'] == 'jpeg' || $media['type'] == 'gif' || $media['type'] == 'png') {
echo "<a href='#' onclick=\"display_media('".$media['uuid']."','".$media_source."');\" class='message-media-link-".($message['message_direction'] == 'inbound' ? 'em' : 'me')."'>";
}
else {
echo "<a href='message_media.php?id=".$media['uuid']."&src=".$media_source."&action=download' class='message-media-link-".($message['message_direction'] == 'inbound' ? 'em' : 'me')."'>";
}
echo "<img src='resources/images/attachment.png' style='width: 16px; height: 16px; border: none; margin-right: 10px;'>";
echo "<span style='font-size: 85%;'>".strtoupper($media['type']).' &middot; '.strtoupper(byte_convert($media['size']))."</span>";
echo "</a>\n";