【问题标题】:Laravel file upload not parsed with "multipart/form-data"Laravel 文件上传未使用“multipart/form-data”解析
【发布时间】:2020-10-26 21:20:52
【问题描述】:

我正在尝试以前使用过的文件上传,但现在似乎无法正常工作

<form action="{{ route('media.upload')}}" method="POST" enctype="multipart/form-data">
{{ csrf_field() }}
<input type="text" name="name" placeholder="title">
<input type="file" name="file">
<button type="submit" name="submit">Submit</button></form>

web.php

Route::group(['middleware' => 'auth:api'], function () {
Route::get('upload', function () {
    return view('upload');
})->name('upload');

api.php

Route::post('upload', 'UploadController@upload')->name('media.upload');

控制器功能

public function upload (Request $request)
{
    dd($request->all());
}

这是我得到的错误,这是唯一可读的行????

"------WebKitFormBoundaryZIiC073OTmdxtEqAContent-Disposition:_form-data;_name" => b""_token"\r\n\r\nTZFHuu4liPLE6Esz2avGRlqLv9K8v1uhKgI7dWw8\r\n------WebKitFormBoundaryZIiC073OTmdxtEqA\r\nContent-Disposition: form-data

我不能使用 application/x-www-form-urlencode 文件没有上传

【问题讨论】:

  • 你是在使用ajax请求上传文件吗?
  • 这实际上是一个错误吗? dd($request-&gt;file('file')); 显示什么?我很确定$request-&gt;input()(以及扩展名$request-&gt;all())对待图片上传的方式不同于$request-&gt;file()
  • 感谢您的回复,我没有使用Ajax,我正在使用laravel Blade模板进行测试,目标是API,这就是我使用API​​路由的原因

标签: php laravel forms file-upload


【解决方案1】:

你的输出是什么?

<?php
   
                if($request-> hasFile('file')){ 
                $reques->file('file');) ;
                }else {
                return   'file there are not' ;  
                } 
 ?>

【讨论】:

  • 您能添加任何解释吗?你能把代码标记为代码吗?
【解决方案2】:

我修好了,感谢@dgraham 回答https://github.com/github/fetch/issues/505#issuecomment-293064470

我使用的 header 插件有 Content-type,我取消了除 Authorization 之外的所有 headers 并且它起作用了。

【讨论】:

    猜你喜欢
    • 2015-10-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-02-18
    • 2020-02-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多