独立CKFinder:如何只在文件对话框弹出窗口中选择图像?

时间:2013-07-17 20:13:30

标签: javascript file-upload popup ckfinder

我正在将CKFinder与CKEditor结合使用,但也作为独立的文件输入图像弹出窗口。因此,当有人点击“上传”按钮时,会出现一个新的弹出窗口,其中有人可以选择要上传的图像/文件/ Flash文件。 对于“avatar”字段,我只需要选择图像文件。不应该选择其他文件类型。我怎样才能使这个工作?在文档中,我找不到非常有用的信息。

在CKEditor中,可以只从CKFinder-popup中选择图像或文件,但看起来在CKFinder的独立版本中已经忘记了相同的选项。 我需要实现“ckfinder.html?type = Image”,但我不想修改ckfinder.js,因为这也会影响其他文件弹出对话框,其中有人应该能够选择图像作为文件。

我在弹出样本中包含了CKFinder:

var finder = new CKFinder();
finder.basePath = '../';    // The path for the installation of CKFinder (default = "/ckfinder/").
finder.selectActionFunction = SetFileField;
finder.popup();

提前感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

你应该试试看, *

  

的LoadImage

是按钮选择文件的ID,

  

picUrl

是文字链接的ID

$('#LoadImage').click(function () {
    var finder = new CKFinder();
    finder.selectActionFunction = function (fileUrl) {
        fileUrl = fileUrl.substring(fileUrl.lastIndexOf("/") + 1);
        $('#picUrl').val = (fileUrl);
    }
    selectFileWithCKFinder('picUrl');
})
function selectFileWithCKFinder(elementId) {
    CKFinder.popup({
        chooseFiles: true,
        width: 800,
        height: 600,
        onInit: function (finder) {
            finder.on('files:choose', function (evt) {
                var file = evt.data.files.first();
                var output = document.getElementById(elementId);
                output.value = file.getUrl();
            });

            finder.on('file:choose:resizedImage', function (evt) {
                var output = document.getElementById(elementId);
                output.value = evt.data.resizedUrl;
            });
        }
    });
}