From 495a6f7ec28b9988f75340fb243dea44ac78c300 Mon Sep 17 00:00:00 2001 From: Mike Primm Date: Mon, 4 Feb 2019 00:13:02 -0600 Subject: [PATCH] Add ImageLen for SQLLite to PHP (standalone server) --- .../org/dynmap/storage/sqllte/SQLiteMapStorage.java | 12 ++++++------ .../extracted/web/standalone/SQLite_tiles.php | 10 ++++++++-- 2 files changed, 14 insertions(+), 8 deletions(-) diff --git a/DynmapCore/src/main/java/org/dynmap/storage/sqllte/SQLiteMapStorage.java b/DynmapCore/src/main/java/org/dynmap/storage/sqllte/SQLiteMapStorage.java index 96da22c4..3b613164 100644 --- a/DynmapCore/src/main/java/org/dynmap/storage/sqllte/SQLiteMapStorage.java +++ b/DynmapCore/src/main/java/org/dynmap/storage/sqllte/SQLiteMapStorage.java @@ -161,7 +161,7 @@ public class SQLiteMapStorage extends MapStorage { stmt.setLong(2, System.currentTimeMillis()); stmt.setInt(3, map.getImageFormat().getEncoding().ordinal()); stmt.setBytes(4, encImage.buf); - stmt.setInt(5, encImage.buf.length); + stmt.setInt(5, encImage.len); stmt.setInt(6, mapkey); stmt.setInt(7, x); stmt.setInt(8, y); @@ -177,7 +177,7 @@ public class SQLiteMapStorage extends MapStorage { stmt.setLong(6, System.currentTimeMillis()); stmt.setInt(7, map.getImageFormat().getEncoding().ordinal()); stmt.setBytes(8, encImage.buf); - stmt.setInt(9, encImage.buf.length); + stmt.setInt(9, encImage.len); } //stmt.executeUpdate(); doExecuteUpdate(stmt); @@ -640,7 +640,7 @@ public class SQLiteMapStorage extends MapStorage { else if (exists) { stmt = c.prepareStatement("UPDATE Faces SET Image=?,ImageLen=? WHERE PlayerName=? AND TypeID=?;"); stmt.setBytes(1, encImage.buf); - stmt.setInt(2, encImage.buf.length); + stmt.setInt(2, encImage.len); stmt.setString(3, playername); stmt.setInt(4, facetype.typeID); } @@ -649,7 +649,7 @@ public class SQLiteMapStorage extends MapStorage { stmt.setString(1, playername); stmt.setInt(2, facetype.typeID); stmt.setBytes(3, encImage.buf); - stmt.setInt(4, encImage.buf.length); + stmt.setInt(4, encImage.len); } //stmt.executeUpdate(); doExecuteUpdate(stmt); @@ -753,14 +753,14 @@ public class SQLiteMapStorage extends MapStorage { else if (exists) { stmt = c.prepareStatement("UPDATE MarkerIcons SET Image=?,ImageLen=? WHERE IconName=?;"); stmt.setBytes(1, encImage.buf); - stmt.setInt(2, encImage.buf.length); + stmt.setInt(2, encImage.len); stmt.setString(3, markerid); } else { stmt = c.prepareStatement("INSERT INTO MarkerIcons (IconName,Image,ImageLen) VALUES (?,?,?);"); stmt.setString(1, markerid); stmt.setBytes(2, encImage.buf); - stmt.setInt(3, encImage.buf.length); + stmt.setInt(3, encImage.len); } doExecuteUpdate(stmt); stmt.close(); diff --git a/DynmapCore/src/main/resources/extracted/web/standalone/SQLite_tiles.php b/DynmapCore/src/main/resources/extracted/web/standalone/SQLite_tiles.php index c5c9a5e0..adf86a7a 100644 --- a/DynmapCore/src/main/resources/extracted/web/standalone/SQLite_tiles.php +++ b/DynmapCore/src/main/resources/extracted/web/standalone/SQLite_tiles.php @@ -78,7 +78,7 @@ else { $db = new SQLite3($dbfile, SQLITE3_OPEN_READONLY); -$stmt = $db->prepare('SELECT Tiles.Image,Tiles.Format,Tiles.HashCode,Tiles.LastUpdate FROM Maps JOIN Tiles WHERE Maps.WorldID=:wid AND Maps.MapID=:mapid AND Maps.Variant=:var AND Maps.ID=Tiles.MapID AND Tiles.x=:x AND Tiles.y=:y and Tiles.zoom=:zoom'); +$stmt = $db->prepare('SELECT Tiles.Image,Tiles.Format,Tiles.HashCode,Tiles.LastUpdate,Tiles.ImageLen FROM Maps JOIN Tiles WHERE Maps.WorldID=:wid AND Maps.MapID=:mapid AND Maps.Variant=:var AND Maps.ID=Tiles.MapID AND Tiles.x=:x AND Tiles.y=:y and Tiles.zoom=:zoom'); $stmt->bindValue(':wid', $world, SQLITE3_TEXT); $stmt->bindValue(':mapid', $prefix, SQLITE3_TEXT); $stmt->bindValue(':var', $variant, SQLITE3_TEXT); @@ -97,7 +97,13 @@ if (isset($row[1])) { } header('ETag: \'' . $row[2] . '\''); header('Last-Modified: ' . gmdate('D, d M Y H:i:s', $row[3]/1000) . ' GMT'); - echo rtrim($row[0], "\0"); + if ($row[4] > 0) { + $v = substr($row[0], 0, $row[4]); + } else { + $v = rtrim($row[0], "\0"); + } + header('Content-Length: ' . strlen($v)); + echo $v; } else { header('Location: ../images/blank.png');