189 lines
5.4 KiB
JavaScript
189 lines
5.4 KiB
JavaScript
|
|
FilePond.registerPlugin(
|
|
FilePondPluginImagePreview,
|
|
FilePondPluginImageCrop,
|
|
FilePondPluginImageExifOrientation,
|
|
FilePondPluginImageFilter,
|
|
FilePondPluginImageResize,
|
|
FilePondPluginFileValidateSize,
|
|
FilePondPluginFileValidateType,
|
|
)
|
|
|
|
// Filepond: Basic
|
|
FilePond.create(document.querySelector(".basic-filepond"), {
|
|
credits: null,
|
|
allowImagePreview: false,
|
|
allowMultiple: false,
|
|
allowFileEncode: false,
|
|
required: false,
|
|
})
|
|
|
|
// Filepond: Multiple Files
|
|
FilePond.create(document.querySelector(".multiple-files-filepond"), {
|
|
credits: null,
|
|
allowImagePreview: false,
|
|
allowMultiple: true,
|
|
allowFileEncode: false,
|
|
required: false,
|
|
})
|
|
|
|
// Filepond: With Validation
|
|
FilePond.create(document.querySelector(".with-validation-filepond"), {
|
|
credits: null,
|
|
allowImagePreview: false,
|
|
allowMultiple: true,
|
|
allowFileEncode: false,
|
|
required: true,
|
|
acceptedFileTypes: ["image/png"],
|
|
fileValidateTypeDetectType: (source, type) =>
|
|
new Promise((resolve, reject) => {
|
|
// Do custom type detection here and return with promise
|
|
resolve(type)
|
|
}),
|
|
})
|
|
|
|
// Filepond: ImgBB with server property
|
|
FilePond.create(document.querySelector(".imgbb-filepond"), {
|
|
credits: null,
|
|
allowImagePreview: false,
|
|
server: {
|
|
process: (fieldName, file, metadata, load, error, progress, abort) => {
|
|
// We ignore the metadata property and only send the file
|
|
|
|
const formData = new FormData()
|
|
formData.append(fieldName, file, file.name)
|
|
|
|
const request = new XMLHttpRequest()
|
|
// you can change it by your client api key
|
|
request.open(
|
|
"POST",
|
|
"https://api.imgbb.com/1/upload?key=762894e2014f83c023b233b2f10395e2"
|
|
)
|
|
|
|
request.upload.onprogress = (e) => {
|
|
progress(e.lengthComputable, e.loaded, e.total)
|
|
}
|
|
|
|
request.onload = function () {
|
|
if (request.status >= 200 && request.status < 300) {
|
|
load(request.responseText)
|
|
} else {
|
|
error("oh no")
|
|
}
|
|
}
|
|
|
|
request.onreadystatechange = function () {
|
|
if (this.readyState == 4) {
|
|
if (this.status == 200) {
|
|
let response = JSON.parse(this.responseText)
|
|
|
|
Toastify({
|
|
text: "Success uploading to imgbb! see console f12",
|
|
duration: 3000,
|
|
close: true,
|
|
gravity: "bottom",
|
|
position: "right",
|
|
backgroundColor: "#4fbe87",
|
|
}).showToast()
|
|
} else {
|
|
Toastify({
|
|
text: "Failed uploading to imgbb! see console f12",
|
|
duration: 3000,
|
|
close: true,
|
|
gravity: "bottom",
|
|
position: "right",
|
|
backgroundColor: "#ff0000",
|
|
}).showToast()
|
|
}
|
|
}
|
|
}
|
|
|
|
request.send(formData)
|
|
},
|
|
},
|
|
})
|
|
|
|
// Filepond: Image Preview
|
|
FilePond.create(document.querySelector(".image-preview-filepond"), {
|
|
credits: null,
|
|
allowImagePreview: true,
|
|
allowImageFilter: false,
|
|
allowImageExifOrientation: false,
|
|
allowImageCrop: false,
|
|
acceptedFileTypes: ["image/png", "image/jpg", "image/jpeg"],
|
|
fileValidateTypeDetectType: (source, type) =>
|
|
new Promise((resolve, reject) => {
|
|
// Do custom type detection here and return with promise
|
|
resolve(type)
|
|
}),
|
|
})
|
|
|
|
// Filepond: Image Crop
|
|
FilePond.create(document.querySelector(".image-crop-filepond"), {
|
|
credits: null,
|
|
allowImagePreview: true,
|
|
allowImageFilter: false,
|
|
allowImageExifOrientation: false,
|
|
allowImageCrop: true,
|
|
acceptedFileTypes: ["image/png", "image/jpg", "image/jpeg"],
|
|
fileValidateTypeDetectType: (source, type) =>
|
|
new Promise((resolve, reject) => {
|
|
// Do custom type detection here and return with promise
|
|
resolve(type)
|
|
}),
|
|
})
|
|
|
|
// Filepond: Image Exif Orientation
|
|
FilePond.create(document.querySelector(".image-exif-filepond"), {
|
|
credits: null,
|
|
allowImagePreview: true,
|
|
allowImageFilter: false,
|
|
allowImageExifOrientation: true,
|
|
allowImageCrop: false,
|
|
acceptedFileTypes: ["image/png", "image/jpg", "image/jpeg"],
|
|
fileValidateTypeDetectType: (source, type) =>
|
|
new Promise((resolve, reject) => {
|
|
// Do custom type detection here and return with promise
|
|
resolve(type)
|
|
}),
|
|
})
|
|
|
|
// Filepond: Image Filter
|
|
FilePond.create(document.querySelector(".image-filter-filepond"), {
|
|
credits: null,
|
|
allowImagePreview: true,
|
|
allowImageFilter: true,
|
|
allowImageExifOrientation: false,
|
|
allowImageCrop: false,
|
|
imageFilterColorMatrix: [
|
|
0.299, 0.587, 0.114, 0, 0, 0.299, 0.587, 0.114, 0, 0, 0.299, 0.587, 0.114,
|
|
0, 0, 0.0, 0.0, 0.0, 1, 0,
|
|
],
|
|
acceptedFileTypes: ["image/png", "image/jpg", "image/jpeg"],
|
|
fileValidateTypeDetectType: (source, type) =>
|
|
new Promise((resolve, reject) => {
|
|
// Do custom type detection here and return with promise
|
|
resolve(type)
|
|
}),
|
|
})
|
|
|
|
// Filepond: Image Resize
|
|
FilePond.create(document.querySelector(".image-resize-filepond"), {
|
|
credits: null,
|
|
allowImagePreview: true,
|
|
allowImageFilter: false,
|
|
allowImageExifOrientation: false,
|
|
allowImageCrop: false,
|
|
allowImageResize: true,
|
|
imageResizeTargetWidth: 200,
|
|
imageResizeTargetHeight: 200,
|
|
imageResizeMode: "cover",
|
|
imageResizeUpscale: true,
|
|
acceptedFileTypes: ["image/png", "image/jpg", "image/jpeg"],
|
|
fileValidateTypeDetectType: (source, type) =>
|
|
new Promise((resolve, reject) => {
|
|
// Do custom type detection here and return with promise
|
|
resolve(type)
|
|
}),
|
|
})
|