BlueImp文件上传“错误:方法不允许” - Laravel 4路由问题

10 浏览
0 Comments

BlueImp文件上传“错误:方法不允许” - Laravel 4路由问题

我正在使用Blueimp.jquery file-upload进行文件上传。我的应用程序也在Laravel 4框架下,但在上传文件时出现了错误。\n在Firefox和Chrome中,该API返回的错误是:\n错误:方法不允许\n我认为这个错误与Laravel中的routing有关,因为我在Firebug开发控制台中发现了以下内容:\n{\"error\":{\"type\":\"Symfony\\\\Component\\\\HttpKernel\\\\Exception\\\\MethodNotAllowedHttpException\",\"message\":\"\",\"file\":\"C:\\\\xampp\\\\htdocs\\\\digisells\\\\vendor\\\\laravel\\\\framework\\\\src\\\\Illuminate\\\\Routing\\\\RouteCollection.php\",\"line\":210}}\n这是表单代码:\n

{{ Form::open(['route'=>'image.store','id'=>'fileupload','files'=>true]) }}
        
     
        
        
        
                
                
                    
                    添加文件...
                    
                
                
                
                
                
                
                
            
                
                
                 
        
        

  {{ Form::close() }}

\n这是表单的routes代码:\n

Route::resource('image', 'ImageUploadController');

\n在ImageUploadController中,我有以下代码:\n

public function store()
    {
        $file = Input::file('thumbnail');
        $file = move(public_path().'/product/images/temp/', $file=>getClientOriginaLName());
    }

\n如果routing是问题的原因,我应该如何在我的routes文件中注册这些routes?我指的是我需要使用哪些动词和每个函数内部的代码?或者还有其他可能的解决方案吗?谢谢。

0
0 Comments

BlueImp文件上传“错误:方法不允许”- Laravel 4路由问题的原因和解决方法

问题的原因是在使用BlueImp文件上传插件时,出现了“错误:方法不允许”的提示。解决方法如下:

首先,通过添加以下代码解决该问题:

$('.image-upload').fileupload({
    url: '/upload/image',
    dataType: 'JSON',
    method: 'POST',
    done: function (e, data) {
        //console.log(data);
        $.each(data.result.files, function (index, file) {
            $('

').text(file.name).appendTo($('.image-placeholder')); }); } });

然后,您会收到csrf错误,可以通过添加csrf字段来解决该问题。具体操作可以参考以下链接:

[StackOverFlow](https://stackoverflow.com/questions/46466167)

0
0 Comments

MethodNotAllowedHttpException通常意味着你使用的方法来调用URL是错误的。

假设当你尝试上传文件时出现这个错误,那么可能只是将该路由更改为POST路由而不是GET路由的情况。

是的,我也尝试将方法更改为GET或POST。但无论哪种方式,都返回相同的错误。

这个问题的出现原因是使用了错误的方法来调用URL。解决方法是将路由更改为POST路由。

0
0 Comments

问题的原因是Blueimp.jquery file-upload和Laravel 4之间的路由问题。根据jquery-file-upload的文档,它应该使用POST方法,但实际上需要添加一个使用PUT方法的路由来解决这个问题。

解决方法是在路由中添加一个使用PUT方法的路由,并将其与Ajax调用关联起来。具体代码如下:

Route::put('upload/image', array('as' => 'admin.upload', 'uses' => 'App\Controllers\Admin\ImageController'));

在Javascript的调用中,需要将url参数设置为'/upload/image',并将dataType设置为'JSON'。具体代码如下:

$('.image-upload').fileupload({
    url: '/upload/image',
    dataType: 'JSON',
    //type: 'POST',
    done: function (e, data) {
        //console.log(data);
        $.each(data.result.files, function (index, file) {
            $('

').text(file.name).appendTo($('.image-placeholder')); }); } });

另外,如果在请求中添加了额外的'data.formData'(如文档中所描述),它将使用POST方法而不是PUT方法。

以上就是解决BlueImp File Upload "Error: Method Not Allowed" - Laravel 4 Routing Issue的方法。

0