redactor从剪贴板复制和粘贴图像

时间:2014-04-16 21:13:11

标签: php redactor

我在我的网站中使用Redactor,它基于来自代码峡谷的Dalegroup模块的Tickets。我希望能够从剪贴板中复制和粘贴图像(基本上从文字中复制文档并将其与图像完整粘贴)Redactor Settings Page 我试图让这个工作,但我无法得到它。我试图创建自己的文件上传脚本:

<?php

$dir = '/knowledge/files/';

$contentType = $_POST['contentType'];
$data = base64_decode($_POST['data']);


$filename = md5(date('YYHis')).'.png';
$file = $dir.$filename;
file_put_contents($file, $data);

echo json_encode(array('filelink' => '/tmp/'.$filename));

?>

以上情况似乎不起作用,我也在其网站上启用了这些功能:

This setting allows to paste images from clipboard and upload them to the server. It     works in latest Chrome, Firefox and Opera (Webkit).

Default setting is true, to turn off, set clipboardUpload: false.

To perform pasted images uploads, set the following:

$('#redactor').redactor({
clipboardUploadUrl: '/your_clipboard_upload_script/'
});

现在我唯一没有尝试过的是那里的代码底部,因为redactor文件包含一个包含所有启用选项的部分,所以我认为我不需要它。怎么可能让这个工作?

感谢。

更新:

好的,我可以通过在redactor.js中启用和设置一些变量来获得redactor的复制和粘贴工作:

dragUpload: true, // false
imageTabLink: true,
imageUpload: '/user/files/', // url
imageUploadParam: 'file', // input name
imageResizable: true,
fileUpload: '/user/files/', // url
fileUploadParam: 'file', // input name
clipboardUpload: true, // or false
clipboardUploadUrl: '/user/files/', // url

然后在我的html_header.php文件中,我在$('。wysiwyg_enabled')中添加了以下内容。从第69行开始的redactor代码:

clipboardUploadUrl: '/user/files/fileupload.php',
fileUpload: '/user/files/fileupload.php'

然后最后添加了我的fileupload.php:

<?php

// files storage folder
$dir = '/user/files/';

$_FILES['file']['type'] = strtolower($_FILES['file']['type']);

if ($_FILES['file']['type'] == 'image/png'
|| $_FILES['file']['type'] == 'image/jpg'
|| $_FILES['file']['type'] == 'image/gif'
|| $_FILES['file']['type'] == 'image/jpeg'
|| $_FILES['file']['type'] == 'image/pjpeg')
{
// setting file's mysterious name
$file = $dir.md5(date('YmdHis')).'.jpg';

// copying
move_uploaded_file($_FILES['file']['tmp_name'], $file);

// displaying file
$array = array(
    'filelink' => '/user/images/'.$file
);

echo stripslashes(json_encode($array));
}

?>

一切似乎都有效但我在chrome中遇到错误:Uncaught SyntaxError:意外的输入结束。它不在我的代码中,而是在Jquery本身。复制和粘贴在Mozilla中运行良好,而不是IE,有时在Chrome中由于错误。

1 个答案:

答案 0 :(得分:0)

它可能没有帮助 - 我现在正试图做同样的事情 - 但这是一个redactor捆绑工作: https://github.com/kraksoft/RedactorBundle 我实际上正在使用它(我也分叉了项目,但没有带来任何新的东西),图像上传工作,我想我离剪贴板上传不太远,保持更新的捆绑!< / p>