带S3上传的Yii Redactor
目前,我在Yii安装中使用此Imperavi Redactor小部件。它目前可以工作,但后来我注意到我可以通过WYSIWYG处理图像上传,因此我研究了如何启用这一功能,从而得出以下结论:带S3上传的Yii Redactor,yii,amazon-s3,redactor,Yii,Amazon S3,Redactor,目前,我在Yii安装中使用此Imperavi Redactor小部件。它目前可以工作,但后来我注意到我可以通过WYSIWYG处理图像上传,因此我研究了如何启用这一功能,从而得出以下结论: <?php $attribute = 'info'; $this->widget('ImperaviRedactorWidget', array( // The textarea selector 'selector' => '.redacto
<?php
$attribute = 'info';
$this->widget('ImperaviRedactorWidget', array(
// The textarea selector
'selector' => '.redactor',
// Options
'options'=>array(
'fileUpload'=>Yii::app()->createUrl('post/fileUpload',array(
'attr'=>$attribute
)),
'fileUploadErrorCallback'=>new CJavaScriptExpression(
'function(obj,json) { alert(json.error); }'
),
'imageUpload'=>Yii::app()->createUrl('post/imageUpload',array(
'attr'=>$attribute
)),
'imageGetJson'=>Yii::app()->createUrl('post/imageList',array(
'attr'=>$attribute
)),
'imageUploadErrorCallback'=>new CJavaScriptExpression(
'function(obj,json) { alert(json.error); }'
),
),
));
?>
但后来我翻阅了redactor.js,发现它们是S3函数,但目前不确定如何使用它们,因为我在任何地方都找不到关于它的文档,只是标准的图像上传。有人用过这个吗?如果是这样的话,你能把我引向正确的方向吗。
谢谢。想明白了。Redactor的“S3”方向给人留下了很多想象空间,只是似乎不起作用。所以我采取了我自己的方法
$this->widget('ImperaviRedactorWidget', array(
// The textarea selector
'selector' => '.redactor',
// Some options, see http://imperavi.com/redactor/docs/
'options'=>array(
'fileUpload'=>'../upload',
'Upload'=>'../upload',
),
));
在控制器中创建了上载操作
public function actionUpload(){
$S3_KEY = '';
$S3_SECRET = '';
$S3_BUCKET = '';
$S3_URL = 'http://s3.amazonaws.com/';
// expiration date of query
$tempFile = $_FILES['file']['tmp_name'];
$filename = $_FILES['file']['name'];
$s3 = new A2S3();
$s3->putObject(array(
'Bucket' => $S3_BUCKET,
'Key' => $filename,
'Body' => fopen($tempFile, 'r+'),
'ACL' => 'public-read',
));
$array = array(
'filelink' => 'http://'.$S3_BUCKET.$filename
);
echo stripslashes(json_encode($array));
我明白了。Redactor的“S3”方向给人留下了很多想象空间,只是似乎不起作用。所以我采取了我自己的方法
$this->widget('ImperaviRedactorWidget', array(
// The textarea selector
'selector' => '.redactor',
// Some options, see http://imperavi.com/redactor/docs/
'options'=>array(
'fileUpload'=>'../upload',
'Upload'=>'../upload',
),
));
在控制器中创建了上载操作
public function actionUpload(){
$S3_KEY = '';
$S3_SECRET = '';
$S3_BUCKET = '';
$S3_URL = 'http://s3.amazonaws.com/';
// expiration date of query
$tempFile = $_FILES['file']['tmp_name'];
$filename = $_FILES['file']['name'];
$s3 = new A2S3();
$s3->putObject(array(
'Bucket' => $S3_BUCKET,
'Key' => $filename,
'Body' => fopen($tempFile, 'r+'),
'ACL' => 'public-read',
));
$array = array(
'filelink' => 'http://'.$S3_BUCKET.$filename
);
echo stripslashes(json_encode($array));