在project上使用TinyMce编辑器创建工作日志。用户可以获取一个屏幕截图(比如绿色截图,剪短工具)并将其粘贴到Tinymce编辑器中。Tinymce会将屏幕截图命名为mceclip0.png (pic1)、mceclip1.png (pic2)等。用户保存工作日志,并将图像以这些名称上载到with服务器上的文件夹中。到目前一切尚好。
当用户希望稍后编辑此工作日志并粘贴到他/她忘记添加的新图像时,该图像将为.pic3.如果用户保存这个,哦,工作日志的第一个初始创建的第一个图像将被覆盖。因此,pic1现在看起来将与pic3相同。
这里是添加前两幅图片的:
,然后用户想要添加第三张图片,这会发生:
下面是使用的代码和Tinymce的代码。我试图根据文档更改参数,但没有任何运气。有人说这是通过
images_reuse_filename: true
但对我来说不是这样。如果我将某物的剪切工具保存到磁盘中,它将被命名为"screenshot.png“。在Tinymce编辑器中,它无论如何都会更改为mceclip0.png。
我在想,我想把日期和时间附加到"mceclip.png“的名字上,但我不知道怎么做。这会是一个解决方案吗?
提前感谢!
tinymce.init({
selector: 'textarea',
height: 600,
plugins: 'image code paste',
paste_data_images: true,
image_file_types: 'jpg,webp,png',
toolbar: 'undo redo | link image | code',
automatic_uploads: true,
images_upload_url: 'fileUpload.php',
images_reuse_filename: true,
images_upload_handler: function (blobInfo, success, failure) {
var xhr, formData;
xhr = new XMLHttpRequest();
xhr.withCredentials = false;
xhr.open('POST', 'fileUpload');
xhr.onload = function () {
var json;
if (xhr.status !== 200) {
failure('HTTP Error: ' + xhr.status);
return;
}
json = JSON.parse(xhr.responseText);
if (!json || typeof json.location != 'string') {
failure('Invalid JSON: ' + xhr.responseText);
return;
}
success(json.location);
};
formData = new FormData();
formData.append('file', blobInfo.blob(), blobInfo.filename());
xhr.send(formData);
}
});
发布于 2022-02-25 07:28:00
似乎没有办法改变文件名,因为它是一个blob和设置在clipboard.js中的TinyMce插件,如果我正确理解这一点。这意味着唯一可以解决的方法(据我所见)是更改这个服务器端。然后,我创建了unix时间戳和文件名的连接,以使其独一无二。
现在,用户可以返回并编辑工作日志,添加屏幕截图而不覆盖现有的屏幕截图。
https://stackoverflow.com/questions/71232617
复制相似问题