I'm working on a social blog that has an editor built in JavaScript for creating a blog by a user. One of my biggest issues is uploading files and its limitations. Right now for auto-saving user posts, I store images uploaded simultaneously to the server. But the problem is when the user deletes images from the editor because:
My editor is a customized version of ckeditor5, and for uploading files, I use an uploadadapter like :
export default class UploadAdapter {
constructor(loader, article) {
this.loader = loader;
this.article = article;
}
upload() {
return new Promise((resolve, reject) => {
let image = new FormData();
let url = '/articles/imageUpload';
image.append('upload', this.loader.file);
image.append('token', this.article.token);
axios.post(url, image)
.then(response => {
console.log(response);
if (response.data.uploaded) {
resolve({
default: response.data.url,
});
}
else {
reject(response.data.error.message);
}
}).catch(error => {
console.log(error);
});
});
}
}
I used the below to embed the images as base64 instead of uploading them
class UploadAdapter {
constructor( loader ) {
this.loader = loader;
}
upload() {
return this.loader.file
.then( file => new Promise( ( resolve, reject ) => {
var myReader= new FileReader();
myReader.onloadend = (e) => {
resolve({ default: myReader.result });
}
myReader.readAsDataURL(file);
} ) );
};
}