Merge pull request #381 from schlagmichdoch/fix-filename-wo-suffix

WIP:Fix chromium file extension if mime type is not set
This commit is contained in:
schlagmichdoch 2025-02-19 12:17:55 +01:00 committed by GitHub
commit b7c1893ac0
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
3 changed files with 8 additions and 6 deletions

View file

@ -1082,7 +1082,7 @@ class PeersManager {
} }
async _onFilesSelected(message) { async _onFilesSelected(message) {
let files = mime.addMissingMimeTypesToFiles(message.files); let files = mime.addMissingMimeTypesToFiles([...message.files]);
await this.peers[message.to].requestFileTransfer(files); await this.peers[message.to].requestFileTransfer(files);
} }
@ -1306,9 +1306,8 @@ class FileDigester {
const blob = new Blob(this._buffer) const blob = new Blob(this._buffer)
this._buffer = null; this._buffer = null;
this._callback(new File([blob], this._name, { this._callback(new File([blob], this._name, {
type: this._mime, type: this._mime || "application/octet-stream",
lastModified: new Date().getTime() lastModified: new Date().getTime()
})); }));
} }
} }

View file

@ -873,7 +873,9 @@ class ReceiveDialog extends Dialog {
const fileName = files[0].name; const fileName = files[0].name;
const fileNameSplit = fileName.split('.'); const fileNameSplit = fileName.split('.');
const fileExtension = '.' + fileNameSplit[fileNameSplit.length - 1]; const fileExtension = fileNameSplit.length > 1
? '.' + fileNameSplit[fileNameSplit.length - 1]
: '';
this.$fileStem.innerText = fileName.substring(0, fileName.length - fileExtension.length); this.$fileStem.innerText = fileName.substring(0, fileName.length - fileExtension.length);
this.$fileExtension.innerText = fileExtension; this.$fileExtension.innerText = fileExtension;
this.$fileSize.innerText = this._formatFileSize(totalSize); this.$fileSize.innerText = this._formatFileSize(totalSize);

View file

@ -392,7 +392,8 @@ const mime = (() => {
"vob": "video/x-ms-vob", "vob": "video/x-ms-vob",
"wmv": "video/x-ms-wmv", "wmv": "video/x-ms-wmv",
"avi": "video/x-msvideo", "avi": "video/x-msvideo",
"*": "video/x-sgi-movie" "*": "video/x-sgi-movie",
"kdbx": "application/x-keepass2"
} }
return { return {
@ -409,7 +410,7 @@ const mime = (() => {
// if filetype is empty guess via suffix otherwise leave unchanged // if filetype is empty guess via suffix otherwise leave unchanged
for (let i = 0; i < files.length; i++) { for (let i = 0; i < files.length; i++) {
if (!files[i].type) { if (!files[i].type) {
files[i] = new File([files[i]], files[i].name, {type: mime.guessMimeByFilename(files[i].name) || ""}); files[i] = new File([files[i]], files[i].name, {type: mime.guessMimeByFilename(files[i].name) || "application/octet-stream"});
} }
} }
return files; return files;