【问题标题】:Laravel 5.8 broken image uploadLaravel 5.8 碎图上传
【发布时间】:2019-04-23 03:18:16
【问题描述】:

我在我的一个食谱应用程序中上传了一张图片,到目前为止它一直运行良好。它突然坏了,如果我不上传图片,它只会让我发布我的食谱,我让它恢复到默认的“noimage.jpg”。有人可以看看我的逻辑,看看我哪里出错了吗?我不明白它在哪里破裂。谢谢你。

控制器存储功能

// Handle File Upload 
        if($request->hasfile('recipeImage')){
            // Get filename with extension
            $fileameWithExt = $request->file('recipeImage')->getClientOriginalName();
            // Get just filename
            $filename = pathinfo($fileameWithExt, PATHINFO_FILENAME);
            // Get just extension
            $extension = $request->file('recipeImage')->getClientOriginalExtension();
            // Filename to store
            $fileNameToStore = $filename . '_' . time() . '.' . $extension;
            // Upload Image
            $path = $request->file('recipeImage')->storeAs('public/recipe_images', $fileNameToStore);
        } else {
            $fileNameToStore = 'noimage.jpg';
        }


        $recipe = new Recipe;
            $recipe->author = auth()->user()->username;
            $recipe->title = $request->input('title');
            $recipe->description = $request->input('description');
            $recipe->ingredients = $request->input('ingredients');
            $recipe->directions = $request->input('directions');
            $recipe->recipeImage = $fileNameToStore;
            $recipe->prepTime = $request->input('prepTime');
            $recipe->cookTime = $request->input('cookTime');
            $recipe->servings = $request->input('servings');
            $recipe->calories = $request->input('calories');
            $recipe->user_id = auth()->user()->id;
            $recipe->save();

带表单的刀片视图

<form method="POST" action="{{ action('RecipesController@store') }}" id="submitRecipeForm">
    <div class="photoUploadInput">
                    <label for="imageUpload">
                        <input type="file" id="imageUpload" name="recipeImage">
                    </label>
                    <span>Add a photo of your recipe!</span>
                </div>

如果您需要查看更多代码,请告诉我。谢谢

【问题讨论】:

  • 您是否收到任何错误信息?
  • 没有错误。它只是将我重定向回创建视图而没有错误。
  • 那么 $request->file('recipeImage') 只是返回 null 吗? dd($request->file('recipeImage'));
  • 我无法 dd($request->file('recipeImage'));。一旦我提交带有所选文件的表单,它就会将我重定向回我所在的同一页面并且不提交任何内容。我试过 dd($request->file('recipeImage'));在我的“处理图像上传”逻辑之前,它仍然不起作用。上传输入似乎发生了一些奇怪的事情?
  • 如果您将 dd() 放在函数的顶部,那么您将不再被重定向,它应该显示 dd() 的结果。如果它仍然会重定向您,那么您肯定会发生一些不稳定的事情。哈哈

标签: php laravel eloquent


【解决方案1】:

尝试将表单的enctype 属性设置为multipart/form-data

<form method="POST" 
    action="{{ action('RecipesController@store') }}" 
    id="submitRecipeForm" 
    enctype="multipart/form-data">
...

【讨论】:

    【解决方案2】:

    试一试:

    php artisan cache:clear
    

    【讨论】:

      猜你喜欢
      • 2020-01-21
      • 1970-01-01
      • 2019-09-05
      • 2020-10-03
      • 1970-01-01
      • 1970-01-01
      • 2020-06-21
      • 2019-09-07
      • 2019-11-22
      相关资源
      最近更新 更多