Updated base64 image extraction to use url instead of path
To ensure it works with all storage types and follows the format of manually uploaded image content
This commit is contained in:
parent
af7d62799c
commit
0627efe5e9
3 changed files with 15 additions and 5 deletions
|
@ -99,7 +99,7 @@ class PageContent
|
|||
$imageName = 'embedded-image-' . Str::random(8) . '.' . $extension;
|
||||
try {
|
||||
$image = $imageRepo->saveNewFromData($imageName, base64_decode($base64ImageData), 'gallery', $page->id);
|
||||
$imageNode->setAttribute('src', $image->path);
|
||||
$imageNode->setAttribute('src', $image->url);
|
||||
} catch (ImageUploadException $exception) {
|
||||
$imageNode->setAttribute('src', '');
|
||||
}
|
||||
|
|
|
@ -4,6 +4,16 @@ use BookStack\Entities\Models\Page;
|
|||
use BookStack\Model;
|
||||
use BookStack\Traits\HasCreatorAndUpdater;
|
||||
|
||||
/**
|
||||
* @property int $id
|
||||
* @property string $name
|
||||
* @property string $url
|
||||
* @property string $path
|
||||
* @property string $type
|
||||
* @property int $uploaded_to
|
||||
* @property int $created_by
|
||||
* @property int $updated_by
|
||||
*/
|
||||
class Image extends Model
|
||||
{
|
||||
use HasCreatorAndUpdater;
|
||||
|
|
|
@ -495,10 +495,10 @@ class PageContentTest extends TestCase
|
|||
]);
|
||||
|
||||
$page->refresh();
|
||||
$this->assertStringMatchesFormat('%A<p%A>test<img src="/uploads/images/gallery/%A.jpeg">%A</p>%A', $page->html);
|
||||
$this->assertStringMatchesFormat('%A<p%A>test<img src="http://localhost/uploads/images/gallery/%A.jpeg">%A</p>%A', $page->html);
|
||||
|
||||
$matches = [];
|
||||
preg_match('/src="(.*?)"/', $page->html, $matches);
|
||||
preg_match('/src="http:\/\/localhost(.*?)"/', $page->html, $matches);
|
||||
$imagePath = $matches[1];
|
||||
$imageFile = public_path($imagePath);
|
||||
$this->assertEquals(base64_decode($this->base64Jpeg), file_get_contents($imageFile));
|
||||
|
@ -519,10 +519,10 @@ class PageContentTest extends TestCase
|
|||
]);
|
||||
|
||||
$page->refresh();
|
||||
$this->assertStringMatchesFormat('%A<p%A>test<img src="/uploads/images/gallery/%A.png">%A</p>%A', $page->html);
|
||||
$this->assertStringMatchesFormat('%A<p%A>test<img src="http://localhost/uploads/images/gallery/%A.png">%A</p>%A', $page->html);
|
||||
|
||||
$matches = [];
|
||||
preg_match('/src="(.*?)"/', $page->html, $matches);
|
||||
preg_match('/src="http:\/\/localhost(.*?)"/', $page->html, $matches);
|
||||
$imagePath = $matches[1];
|
||||
$imageFile = public_path($imagePath);
|
||||
$this->assertEquals(base64_decode($base64PngWithoutWhitespace), file_get_contents($imageFile));
|
||||
|
|
Loading…
Reference in a new issue