diff --git a/src/components/views/messages/MAudioBody.js b/src/components/views/messages/MAudioBody.js
index 9a8d401185..2258aa1713 100644
--- a/src/components/views/messages/MAudioBody.js
+++ b/src/components/views/messages/MAudioBody.js
@@ -42,8 +42,9 @@ export default class MAudioBody extends React.Component {
}
_getContentUrl() {
- if (this.props.forExport) return this.props.mxEvent.getContent().url;
- const media = mediaFromContent(this.props.mxEvent.getContent());
+ const content = this.props.mxEvent.getContent();
+ if (this.props.forExport) return content.file?.url || content.url;
+ const media = mediaFromContent(content);
if (media.isEncrypted) {
return this.state.decryptedUrl;
} else {
diff --git a/src/components/views/messages/MFileBody.js b/src/components/views/messages/MFileBody.js
index d1a2903d76..c33ad5f21b 100644
--- a/src/components/views/messages/MFileBody.js
+++ b/src/components/views/messages/MFileBody.js
@@ -186,8 +186,9 @@ export default class MFileBody extends React.Component {
}
if (this.props.forExport) {
+ const content = this.props.mxEvent.getContent();
return
-
+
{ placeholder }
;
diff --git a/src/components/views/messages/MImageBody.js b/src/components/views/messages/MImageBody.js
index 2916391f58..9229755d29 100644
--- a/src/components/views/messages/MImageBody.js
+++ b/src/components/views/messages/MImageBody.js
@@ -172,8 +172,9 @@ export default class MImageBody extends React.Component {
}
_getContentUrl() {
- if (this.props.forExport) return this.props.mxEvent.getContent().url;
- const media = mediaFromContent(this.props.mxEvent.getContent());
+ const content = this.props.mxEvent.getContent();
+ if (this.props.forExport) return content.url || content.file.url;
+ const media = mediaFromContent(content);
if (media.isEncrypted) {
return this.state.decryptedUrl;
} else {
diff --git a/src/components/views/messages/MVideoBody.tsx b/src/components/views/messages/MVideoBody.tsx
index 505a1b5a7e..ec9cbcf7b5 100644
--- a/src/components/views/messages/MVideoBody.tsx
+++ b/src/components/views/messages/MVideoBody.tsx
@@ -78,8 +78,9 @@ export default class MVideoBody extends React.PureComponent {
}
private getContentUrl(): string|null {
- if (this.props.forExport) return this.props.mxEvent.getContent().url;
- const media = mediaFromContent(this.props.mxEvent.getContent());
+ const content = this.props.mxEvent.getContent();
+ if (this.props.forExport) return content.file?.url || content.url;
+ const media = mediaFromContent(content);
if (media.isEncrypted) {
return this.state.decryptedUrl;
} else {
diff --git a/src/utils/exportUtils/HtmlExport.tsx b/src/utils/exportUtils/HtmlExport.tsx
index f96efaea4b..f05581a6cb 100644
--- a/src/utils/exportUtils/HtmlExport.tsx
+++ b/src/utils/exportUtils/HtmlExport.tsx
@@ -264,7 +264,8 @@ export default class HTMLExporter extends Exporter {
let eventTileMarkup = renderToStaticMarkup(eventTile);
if (filePath) {
- eventTileMarkup = eventTileMarkup.split(mxEv.getContent().url).join(filePath);
+ const mxc = mxEv.getContent().url || mxEv.getContent().file?.url;
+ eventTileMarkup = eventTileMarkup.split(mxc).join(filePath);
}
if (hasAvatar) {
eventTileMarkup = eventTileMarkup.replace(
@@ -305,7 +306,7 @@ export default class HTMLExporter extends Exporter {
}
this.addFile(filePath, blob);
} catch (e) {
- console.log("Error while fetching file");
+ console.log("Error while fetching file" + e);
eventTile = await this.getEventTile(
this.createModifiedEvent(_t("Error fetching file"), mxEv),
joined,