Redactor图像上传不适用于laravel 5

时间:2015-04-21 06:00:41

标签: php laravel-5 redactor

在laravel 4中工作的相同代码,但在laravel 5中不起作用。

以下是所有代码:

//Redactor Image Upload
Route::post('image/upload', function(){
    $image = Input::file('file');
    $filename = 'bdtimes'.rand(10, 99999999).'.'.$image->getClientOriginalExtension();
    $move = Image::make($image->getRealPath())->save('uploads/images/original/'.$filename);

    if($move){
        return Response::json(['filelink'=>'/uploads/images/original/'. $filename]);
    }else{
        return Response::json(['error'=>true]);
    }
});

Redactor脚本:

$(function()
{
    $('#redactor').redactor({
            focus: true,
            imageUpload: '{{ url() }}/image/upload',
            imageManagerJson: '{{ url() }}/image.php',
            plugins: ['table', 'video','imagemanager','fontcolor','fontsize','fullscreen'],
            maxHeight: 300,
            minHeight: 300
        });
});

在Chrome Developer Tool中,此错误显示我何时尝试上传图片。

Failed to load resource: the server responded with a status of 500 (Internal Server Error)        http://localhost:8000/image/upload

有什么问题?请帮帮我。

由于

3 个答案:

答案 0 :(得分:1)

更新了答案

令牌存在问题。更改Redactor脚本..

$(function()
{
    $('#redactor').redactor({
        focus: true,
        imageUpload: '{{ url() }}/image/upload?_token=' + '{{ csrf_token() }}',
        imageManagerJson: '{{ url() }}/image.php',
        plugins: ['table', 'video','imagemanager','fontcolor','fontsize','fullscreen'],
        maxHeight: 300,
        minHeight: 300
    });
});

答案 1 :(得分:0)

这意味着路线中的某条线路出错。看看你的代码我没有看到任何明显的问题,它可能与导入等有关,这里没有显示。

尝试在每一行之后使用dd()来打印调试信息,直到找到确切的行是什么坏了。

您还可以查看Chrome开发者工具的ajax请求响应,因为它必须包含有关确切错误的更多信息。

答案 2 :(得分:0)

使用带有yii框架的redactor时遇到了同样的问题。我认为问题在于设置上传目录的路由。因此,redactor的开发人员改变了一些代码以防止这种情况发生。 在RedactorModule.php中> public function getSaveDir()改变了这个:

 $path = Yii::getAlias($this->uploadDir);
   if (!file_exists($path)) {
       throw new InvalidConfigException('Invalid config $uploadDir');
  }
   if (FileHelper::createDirectory($path . DIRECTORY_SEPARATOR . $this->getOwnerPath(), 0777)) {
  return $path . DIRECTORY_SEPARATOR . $this->getOwnerPath();

到此:

 $path = Yii::getAlias($this->uploadDir) . DIRECTORY_SEPARATOR . $this->getOwnerPath();    
   if(!file_exists($path)){      
      if (!FileHelper::createDirectory($path, 0775,$recursive = true )) {
           throw new InvalidConfigException('$uploadDir does not exist and default path creation failed');
       }
      }
  return $path;