私は Trix を使用しており、添付ファイルをアップロードするために、バックエンド開発者から、バイナリ ファイルをアップロードする代わりに、添付ファイルを base64 に変換し、base64 データをデータベースに保存するように言われました。
これを実装するためにこのコードを書きましたが、入力フィールド (HTML) の出力は期待どおりに機能していますが、画像のプレビューがエディターに表示されません。
$(function() {
$(document).on('trix-attachment-add', function(event) {
var attachment = event.originalEvent.attachment;
// Convert data URLs to File objects.
if(attachment.file) {
return uploadAttachment(attachment);
} else {
console.error('Could not upload attachment.');
console.error(attachment);
attachment.remove();
}
});
});
function uploadAttachment(attachment) {
var reader = new FileReader();
console.log(attachment)
// Set the reader to insert images when they are loaded.
reader.onload = function (e) {
var result = e.target.result;
var attrs = {
src : result,
url: result,
href : ''
};
attachment.setAttributes(attrs)
attachment.setUploadProgress(100);
}
// Read image as base64.
reader.readAsDataURL(attachment.file);
}
この問題の原因はわかりません。