laravel 5.4 laste opp bilde

Min kontrollerkode for opplasting av fil i laravel 5.4:

if ($request->hasFile('input_img')) {
    if($request->file('input_img')->isValid()) {
        try {
            $file = $request->file('input_img');
            $name = rand(11111, 99999) . '.' . $file->getClientOriginalExtension();
            $request->file('input_img')->move("fotoupload", $name);
        } catch (Illuminate\Filesystem\FileNotFoundException $e) {

        }
    }
}

Bildet ble lastet opp, men koden kastet et unntak:

FileNotFoundException i MimeTypeGuesser.php linje 123

Filen er det noen feil i koden min eller er det en feil i laravel 5.4, kan noen hjelpe meg med å løse problemet?

Min visningskode:

<form enctype="multipart/form-data" method="post" action="{{url('admin/post/insert')}}">
    {{ csrf_field() }}
    <div class="form-group">
        <label for="imageInput">File input</label>
        <input data-preview="#preview" name="input_img" type="file" id="imageInput">
        <img class="col-sm-6" id="preview"  src="">
        <p class="help-block">Example block-level help text here.</p>
    </div>
    <div class="form-group">
        <label for="">submit</label>
        <input class="form-control" type="submit">
    </div>
</form>

Du kan bruke den på en enkel måte, gjennom store-metoden i kontrolleren.

som nedenfor

Først må vi opprette et skjema med filinndata slik at vi kan laste opp filen vår.

{{Form::open(['route' => 'user.store', 'files' => true])}}

{{Form::label('user_photo', 'User Photo',['class' => 'control-label'])}}
{{Form::file('user_photo')}}
{{Form::submit('Save', ['class' => 'btn btn-success'])}}

{{Form::close()}}

Slik kan vi håndtere filen i kontrolleren vår.

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use App\Http\Controllers\Controller;

class UserController extends Controller
{

  public function store(Request $request)
  {

  // get current time and append the upload file extension to it,
  // then put that name to $photoName variable.
  $photoName = time().'.'.$request->user_photo->getClientOriginalExtension();

  /*
  talk the select file and move it public directory and make avatars
  folder if doesn't exsit then give it that unique name.
  */
  $request->user_photo->move(public_path('avatars'), $photoName);

  }
}

Det var alt. Nå kan du lagre $photoName i databasen som feltverdien user_photo. Du kan bruke funksjonen asset('avatars') i visningen og få tilgang til bildene.

Kommentarer (0)
if ($request->hasFile('input_img')) {
    if($request->file('input_img')->isValid()) {
        try {
            $file = $request->file('input_img');
            $name = time() . '.' . $file->getClientOriginalExtension();

            $request->file('input_img')->move("fotoupload", $name);
        } catch (Illuminate\Filesystem\FileNotFoundException $e) {

        }
    } 
}

eller følg https://laracasts.com/discuss/channels/laravel/image-upload-file-does-not-working eller https://laracasts.com/series/whats-new-in-laravel-5-3/episodes/12

Kommentarer (0)

I Laravel 5.4 kan du bruke guessClientExtension.

Kommentarer (0)