$request->hasFile() 上传时返回false

埃里克 S。

在我的 Laravel 5.8 应用程序中提交请求时,我似乎无法让我的应用程序上传文件。无论我上传什么类型的文件,hasFile()总是返回false.

形式

<form action="{{ route('items.store') }}" method="POST" enctype="multipart/form-data">
    @csrf
    <div class="form-group py-50">
        <input type="file" name="featured_img" value="featured_img" id="featured_img">
    </div>                    
      
    <div class="form-group">    
        <input type="submit" class="btn btn-primary" value="Upload Image" name="submit">
    </div>                                    
</form>

控制器

/**
 * Store a newly created resource in storage.
 *
 * @param  \Illuminate\Http\Request  $request
 * @return \Illuminate\Http\Response
 */
public function store(Request $request)
{
    //Check if image has been uploaded
    if($request->hasFile('featured_img')){
        return "True!"; 
    } else {
        return "False!";
    }  
}

dd() 输出

array:7 [▼
  "_token" => "sREFSO8bs0rWil05AESVrwEl37XtKOJAF2nCkTNR"
  "status" => "published"
  "featured_img" => "example.jpg"
  "submit" => "Upload Image"
]
  • enctype="multipart/form-data" 已包含在我的表格中。
  • 我测试了多个大小约为 50-80 KB 的文件
  • 我在同一环境中运行另一个 Laravel 应用程序,没有任何问题。我还测试了将相同的图像上传到该应用程序没有任何问题。这让我相信这与错误配置无关php.ini
  • dd($request->all());返回一个字符串名称"featured_img"代替文件对象

更新

在更改我的视图时,我没有意识到我有两个具有相同路径的表单操作。愚蠢的我。感谢所有帮助我解决问题的人。

普拉富拉·库马尔·萨胡

我在 web.php 中的其中一个安装中进行了测试

use Illuminate\Http\Request;
Route::get('test', function(){
    return view('test');
});
Route::post('test', function(Request $request){
    dd($request->hasFile('test'));
})->name('test');

在 test.blade.php 中

<form action="{{ route('test') }}" method="POST" enctype="multipart/form-data">
    @csrf
   <div class="form-group py-50">
     <input type="file" name="test" id="featured_img">
   </div>                    

    <div class="form-group">    
      <input type="submit" class="btn btn-primary" value="Upload Image" name="submit">
    </div>

  </form>

$request->hasFile('test') 返回 true,请检查您的控制器或路由文件中的此代码,如果您遇到任何问题,请告诉我。

您应该使用 @stack 将脚本添加到您的刀片中,而不是使用 @section

更新

根据您更新的视图页面代码,您的视图中有两个表单发布到同一路线,检查第一个表单未关闭,第二个表单打开。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

FileUpload HasFile返回false

Laravel Input :: hasFile('image')即使文件上传也返回false

为什么hasFile()方法返回false?

FileUpload.HasFile 错误地返回 false

Laravel:$ request-> hasFile()无法正常工作

是否可以循环$ request-> hasFile()函数而不获取重复数据?

Laravel:$request->hasFile() 不起作用 在字符串上调用成员函数 getClientOriginalExtension()

未在 laravel 8 中上传的图像没有使用 hasFile

ASP.Net - FileUpload HasFile 始终为 false,FileName 始终为空

尝试hasFile()函数时出现错误“调用未定义的方法”

Request.IsAuthenticated始终在登录时返回false

使用XMLHttpRequest时Django request.is_ajax返回False

输入:: hasFile()不起作用

上传文件php时返回false

即使存在参数,Request :: has()也返回false

解析request.object.existed()返回false

FileUpload控件HasFile失败,但文件实际可用

Laravel 表单请求 hasFile() 不起作用

hasFile有条件的伪造问题

上传更大的文件时 Context.Request.Files 为空

authenticate_or_request_with_http_basic始终返回false

request.is_secure()在双重代理后面返回False

$request->ajax() 在 ajax 调用中返回 false

即使登录,request.user.is_authenticated也返回false

Python:request.has_header(header)始终返回false

hasFile 函数在 Laravel5.8 中不起作用

Request .Form返回null

$request 中的已上传文件

request.user.is_authenticated为True时request.user可以为False吗?