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

     2023-02-24     233

关键词:

【中文标题】BlueImp 文件上传“错误:方法不允许” - Laravel 4 路由问题【英文标题】:BlueImp File Upload "Error: Method Not Allowed" - Laravel 4 Routing Issue 【发布时间】:2014-09-26 07:14:52 【问题描述】:

我正在使用Blueimp.jquery file-upload 进行文件上传。我的应用程序也在Laravel 4 框架下,上传文件时出错。 这个API在Firefox和Chrome中返回的错误是:

 Error: Method Not Allowed

我认为错误来自Laravel 上的routing,因为这是我在Firebug 开发控制台上发现的:

"error":"type":"Symfony\\Component\\HttpKernel\\Exception\\MethodNotAllowedHttpException","message":"","file":"C:\\xampp\\htdocs\\digisells\\vendor\\laravel\\framework\\src\\Illuminate\\Routing\\RouteCollection.php","line":210

这是表单代码:

 Form::open(['route'=>'image.store','id'=>'fileupload','files'=>true]) 
<div class="col-md-12">
    <div class="container">
        <!-- file upload -->
     <!-- <form id="fileupload" action="file-upload/product-images" method="POST" enctype="multipart/form-data"> -->
        <!-- Redirect browsers with JavaScript disabled to the origin page -->
        <noscript><input type="hidden" name="redirect" value="http://blueimp.github.io/jQuery-File-Upload/"></noscript>
        <!-- The fileupload-buttonbar contains buttons to add/delete files and start/cancel the upload -->
        <div class="row fileupload-buttonbar">
            <div class="col-md-7">
                <!-- The fileinput-button span is used to style the file input field as button -->
                <span class="btn btn-success fileinput-button">
                    <i class="glyphicon glyphicon-plus"></i>
                    <span>Add files...</span>
                    <input type="file" name="thumbnail" multiple>
                </span>
                <button type="submit" class="btn btn-primary start">
                    <i class="glyphicon glyphicon-upload"></i>
                    <span>Start upload</span>
                </button>
                <button type="reset" class="btn btn-warning cancel">
                    <i class="glyphicon glyphicon-ban-circle"></i>
                    <span>Cancel upload</span>
                </button>
                <button type="button" class="btn btn-danger delete">
                    <i class="glyphicon glyphicon-trash"></i>
                    <span>Delete</span>
                </button>
                <input type="checkbox" class="toggle">
                <!-- The global file processing state -->
                <span class="fileupload-process"></span>
            </div>
            <!-- The global progress state -->
            <div class="col-md-5 fileupload-progress fade">
                <!-- The global progress bar -->
                <div class="progress progress-striped active" role="progressbar" aria-valuemin="0" aria-valuemax="100">
                    <div class="progress-bar progress-bar-success" style="width:0%;"></div>
                </div>
                <!-- The extended global progress state -->
                <div class="progress-extended">&nbsp;</div>
            </div>
        </div>
        <!-- The table listing the files available for upload/download -->
        <table role="presentation" class="table table-striped"><tbody class="files"></tbody></table>
<!--     </form> -->
    </div>
  </div>
   Form::close() 

这是表单的routes 代码:

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

ImageUploadController 里面我有:

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

如果routing 是问题所在,我如何在我的routes 文件中注册这些routes?我的意思是我必须使用哪些动词以及每个函数中的代码?或者还有其他可能的解决方案吗?谢谢。

【问题讨论】:

如果您发布处理上传的当前路线以及相关的控制器操作,可能会更有帮助 @JofryHS 我已经编辑了我的问题... 【参考方案1】:

我在 Blueimp.jquery 文件上传 + Laravel 4 中也遇到了这个错误。我通过使用 PUT 方法为我的 Ajax 调用添加路由解决了这个问题。 (尽管据说 jquery-file-upload 使用 POST in their documentation)

我的路线是这样的:

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

javascript 调用:

$('.image-upload').fileupload(
url: '/upload/image',
dataType: 'JSON',
//type: 'POST',
done: function (e, data) 
    //console.log(data);
    $.each(data.result.files, function (index, file) 
        $('<p/>').text(file.name).appendTo($('.image-placeholder'));
    );

);

编辑:

经过进一步测试,我发现如果我在请求中添加额外的“data.formData”(如here 所述),它将使用 POST 方法而不是 PUT...

【讨论】:

【参考方案2】:

MethodNotAllowedHttpException 通常意味着您用来调用该 URL 的方法不正确。

假设当您尝试上传文件时发生此错误,则可能只是将该路由更改为 POST 路由而不是 GET 路由。

【讨论】:

是的,我还尝试使用 GET 或 POST 更改 method。但无论哪种方式,都会返回相同的错误。【参考方案3】:

这对我有用:

$('.image-upload').fileupload(
    url: '/upload/image',
    dataType: 'JSON',
    method: 'POST',
    done: function (e, data) 
        //console.log(data);
        $.each(data.result.files, function (index, file) 
            $('<p/>').text(file.name).appendTo($('.image-placeholder'));
        );
    
);

然后你会收到 csrf 错误,可以通过添加 csrf-field 来修复...检查这里: ***

【讨论】:

Blueimp 文件上传 - 直接多次上传到 S3

】Blueimp文件上传-直接多次上传到S3【英文标题】:BlueimpFileUpload-MultipleUploadsDirectlytoS3【发布时间】:2016-11-2221:14:04【问题描述】:在过去几天的搜索之后,我发现有近30个不同的人在问同样的问题,但我没有找到答案。一对夫妇... 查看详情

将 csrf 令牌传递给 blueimp 文件上传

】将csrf令牌传递给blueimp文件上传【英文标题】:passcsrftokentoblueimpfileupload【发布时间】:2015-01-3116:16:38【问题描述】:我正在使用AngularJS构建一个SPA(单页应用程序),而对于FileUpload,我正在尝试使用Blueimp文件上传。服务器端... 查看详情

通过 https 上传多个文件时 blueimp jquery 文件上传挂起

】通过https上传多个文件时blueimpjquery文件上传挂起【英文标题】:Multiplefileuploadoverhttpshangswithblueimpjqueryfileupload【发布时间】:2020-04-2500:09:08【问题描述】:我已经从https://github.com/blueimp/jQuery-File-Upload下载了主文件并在IIS8.5和IIS1... 查看详情

上传的文件的临时名称没有进入 blueimp jQuery 文件上传

】上传的文件的临时名称没有进入blueimpjQuery文件上传【英文标题】:temporarynameoffileuploadednotgettinginblueimpjQueryfileupload【发布时间】:2020-10-2811:01:42【问题描述】:我正在为文件上传器使用blueimpjQuery文件上传。这是我的控制器代... 查看详情

maxNumberOfFiles 在 blueimp jQuery 文件上传中无法正常工作

】maxNumberOfFiles在blueimpjQuery文件上传中无法正常工作【英文标题】:maxNumberOfFilesnotworkingproperlyinblueimpjQueryFileUpload【发布时间】:2014-05-2616:18:20【问题描述】:我正在使用带有CodeIgniter的jQuery文件上传插件(http://blueimp.github.io/jQuery-... 查看详情

Blueimp 上传插件进度条错误

】Blueimp上传插件进度条错误【英文标题】:Blueimpuploadpluginprogressbarerror【发布时间】:2013-05-2911:54:19【问题描述】:我有一个使用blueimp上传插件上传文件的表单。上传过程正常。我想要的只是在上传事件中添加一个进度条。我... 查看详情

Blueimp jQuery 文件上传,传递额外的表单数据

】BlueimpjQuery文件上传,传递额外的表单数据【英文标题】:BlueimpjQueryfileupload,passingextraformdata【发布时间】:2011-11-1912:41:51【问题描述】:我可以帮忙...尽可能清晰和简单。我会尽量具体一点。好的...我想用这个实现的是人们可... 查看详情

如何在 ASP.NET 中实现 Blueimp jQuery 文件上传

】如何在ASP.NET中实现BlueimpjQuery文件上传【英文标题】:HowtoimplementBlueimpjQueryfileuploadinASP.NET【发布时间】:2012-02-1316:06:31【问题描述】:尝试实现BlueimpjQuery文件上传器,但让它在我的ASPNETMVC3C#Web应用程序中工作时遇到了挫折。... 查看详情

JQuery-File-Upload BlueImp文件上传EXIF方向旋转

】JQuery-File-UploadBlueImp文件上传EXIF方向旋转【英文标题】:JQuery-File-UploadBlueImpfileuploadEXIForientationrotation【发布时间】:2020-12-1001:32:45【问题描述】:我使用BlueImp-jQuery-fileupload和MVC5/C#后端来上传JPG。在客户端上我需要预先调整大... 查看详情

Blueimp jquery 文件上传 - 上下文中的进度回调,最后一个不更新

】Blueimpjquery文件上传-上下文中的进度回调,最后一个不更新【英文标题】:Blueimpjqueryfileupload-progresscallbackincontext,lastonedoesn\'tupdate【发布时间】:2012-10-2917:18:33【问题描述】:我用的是:https://github.com/blueimp/jQuery-File-Upload(基... 查看详情

如何使用 PHP 调用 UploadHandler.php - blueimp jQuery 文件上传

】如何使用PHP调用UploadHandler.php-blueimpjQuery文件上传【英文标题】:HowtocallUploadHandler.phpwithPHP-blueimpjQueryFileUpload【发布时间】:2013-05-0906:50:50【问题描述】:有谁知道如何使用PHP上传图片并调用UploadHandler.php?我不确定需要传递哪... 查看详情

Vimeo API:使用 HTTP PUT 和 blueimp 的 jQuery fileupload 进行流式上传

】VimeoAPI:使用HTTPPUT和blueimp的jQueryfileupload进行流式上传【英文标题】:VimeoAPI:streaminguploadusingHTTPPUTandblueimp\'sjQueryfileupload【发布时间】:2014-12-0101:51:54【问题描述】:我正在尝试在网站上实现一个上传模块,该模块允许我们的... 查看详情

.NET Web API Blueimp 多文件上传错误“MIME 多部分流意外结束。MIME 多部分消息不完整。”

】.NETWebAPIBlueimp多文件上传错误“MIME多部分流意外结束。MIME多部分消息不完整。”【英文标题】:.NETWebAPIBlueimpmultiplefileuploaderror"UnexpectedendofMIMEmultipartstream.MIMEmultipartmessageisnotcomplete."【发布时间】:2021-05-1819:00:01【问题... 查看详情

Jquery File Upload blueimp 无法更改错误消息文本

】JqueryFileUploadblueimp无法更改错误消息文本【英文标题】:JqueryFileUploadblueimpcannotchangeerrormessagetext【发布时间】:2017-09-0310:50:34【问题描述】:我正在使用blueimp著名的jquery文件上传插件在我的服务器上上传文件。我想将错误消息... 查看详情

使用 jQuery File Upload 上传超过 1GB 到 2GB 的大文件 - blueimp(基于 Ajax)php / yii 它在 Firefox 浏览器中显示错误

】使用jQueryFileUpload上传超过1GB到2GB的大文件-blueimp(基于Ajax)php/yii它在Firefox浏览器中显示错误【英文标题】:uploadalargefileover1GBto2GBusingjQueryFileUpload-blueimp(Ajaxbased)php/yiiitshowingerrorinFirefoxBrowser【发布时间】:2016-03-0612:17:08【问题... 查看详情

React Konva,blueimp-load-image 上传图像重新缩放

】ReactKonva,blueimp-load-image上传图像重新缩放【英文标题】:ReactKonva,blueimp-load-imageuploadedImagerescaling【发布时间】:2020-04-0318:42:15【问题描述】:我正在尝试在KonvaImage中显示上传的图像。图片由blueimp-load-image使用以下代码重新缩... 查看详情

在admui中怎样上传本地文件?(代码片段)

...要引入一些插件css:  <linkrel="stylesheet"href="/vendor/blueimp-file-upload/jquery.fileupload.css">js:  <scriptsrc="/vendor/blueimp-file-upload/jquery.fileupload.js"data-name="fileupload"data-deps="jquery-ui"></script>  <scriptsrc="/vendor/blu... 查看详情

blueimp jQuery-File-Upload 上传图片后不显示缩略图

】blueimpjQuery-File-Upload上传图片后不显示缩略图【英文标题】:blueimpjQuery-File-Uploadnotdisplayingthumbnailafteruploadingtheimage【发布时间】:2016-06-1201:14:42【问题描述】:我从here9.12.1版下载了最新插件和依赖项。我将下载的文件复制到我... 查看详情