Image InputComponent add file size
This commit is contained in:
parent
fc653076d8
commit
80f3735b02
1 changed files with 27 additions and 8 deletions
|
|
@ -89,7 +89,10 @@
|
|||
v-if="_value"
|
||||
:id="`PreviewHelp${_id}`"
|
||||
class="form-text text-muted d-block"
|
||||
>{{ __("Prévisualisation de l'image") }}</small
|
||||
>{{ __("Prévisualisation de l'image")
|
||||
}}<span v-if="_originalFile" class="fw-bold"
|
||||
> {{ humanFileSize(_originalFile.size) }} </span
|
||||
></small
|
||||
>
|
||||
<img
|
||||
v-if="_value"
|
||||
|
|
@ -336,6 +339,9 @@ import Cropper from "cropperjs";
|
|||
import { Tooltip } from "bootstrap";
|
||||
import trans from "../../modules/trans";
|
||||
|
||||
const UNITS = ["byte", "kilobyte", "megabyte", "gigabyte", "terabyte", "petabyte"];
|
||||
const BYTES_PER_KB = 1024;
|
||||
|
||||
export default defineComponent({
|
||||
mixins: [trans],
|
||||
emits: ["browseFile"],
|
||||
|
|
@ -446,7 +452,7 @@ export default defineComponent({
|
|||
_hasModdedImage: boolean;
|
||||
_cropper: Cropper | null;
|
||||
|
||||
_originalFile: null;
|
||||
_originalFile: File | null;
|
||||
_originalFileName: string;
|
||||
_previewStyle: string;
|
||||
} {
|
||||
|
|
@ -617,6 +623,7 @@ export default defineComponent({
|
|||
false
|
||||
);
|
||||
if (el.files[0]) {
|
||||
self._originalFile = el.files[0];
|
||||
reader.readAsDataURL(el.files[0]);
|
||||
this._valueFileName = el.files[0].name;
|
||||
}
|
||||
|
|
@ -636,6 +643,7 @@ export default defineComponent({
|
|||
if (!actualImage || !actualImage.files) {
|
||||
throw new Error("actualImage is not defined");
|
||||
}
|
||||
self._originalFile = actualImage.files[0];
|
||||
self._originalFileName = actualImage.files[0].name;
|
||||
imgEditor.src = URL.createObjectURL(actualImage.files[0]);
|
||||
|
||||
|
|
@ -702,9 +710,26 @@ export default defineComponent({
|
|||
type: "image/png",
|
||||
lastModified: new Date().getTime(),
|
||||
});
|
||||
this._originalFile = file;
|
||||
container.items.add(file);
|
||||
actualImage.files = container.files;
|
||||
},
|
||||
humanFileSize(sizeBytes: number | bigint): string {
|
||||
let size = Math.abs(Number(sizeBytes));
|
||||
|
||||
let u = 0;
|
||||
while (size >= BYTES_PER_KB && u < UNITS.length - 1) {
|
||||
size /= BYTES_PER_KB;
|
||||
++u;
|
||||
}
|
||||
|
||||
return new Intl.NumberFormat([], {
|
||||
style: "unit",
|
||||
unit: UNITS[u],
|
||||
unitDisplay: "short",
|
||||
maximumFractionDigits: 1,
|
||||
}).format(size);
|
||||
},
|
||||
},
|
||||
});
|
||||
</script>
|
||||
|
|
@ -743,12 +768,6 @@ export default defineComponent({
|
|||
left: 50%;
|
||||
transform: translateX(-50%) translateY(-50%);
|
||||
}
|
||||
|
||||
@include media-breakpoint-up(md) {
|
||||
& > div {
|
||||
position: absolute;
|
||||
}
|
||||
}
|
||||
}
|
||||
input.rightAligned {
|
||||
direction: ltr !important;
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue