首页 > 解决方案 > 在 TinyMCE 中,上传图像的名称会根据您使用拖放还是文件上传而有所不同。我们可以保留原来的名字吗?

问题描述

我实现了一个后端来上传图像并将它们保存在具有唯一名称的服务器上,这些名称基于原始名称并附加了 ms 时间戳以保持它们的唯一性。

当我使用拖放界面时,它会保留原始文件名,如下所示:

hands-1614581114338.jpeg

但是,如果我使用文件上传对话框,则会创建一个基于“blob”的名称,它具有自己唯一的时间戳名称,如下所示:

blobid1614589991819-1614590017686.jpg

有没有办法让文件上传对话框工作名称文件与拖放界面相同?

我试过了

images_reuse_filename: true

但显然那是为了别的。

谢谢。

标签: tinymce

解决方案


自定义上传处理程序:

images_upload_handler: function (blobInfo, success, failure) {
    let xhr, formData;
    xhr = new XMLHttpRequest();
    xhr.withCredentials = false;
    xhr.open('POST', 'upladhandler.php');
    xhr.onload = function() {
        let 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.blob().name);
    xhr.send(formData);
}

服务器端:

$original_filename = $_FILES['file']['name'];

推荐阅读