php - ruta - subir documento laravel
laravel 5.4 subir imagen (9)
En Laravel 5.4, puedes usar guessClientExtension
Mi código de controlador para cargar el archivo en 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) {
}
}
}
La imagen se cargó correctamente, pero el código arrojó una excepción:
FileNotFoundException en la línea 123 de MimeTypeGuesser.php
El archivo tiene un error en mi código o es un error en la versión 5.4. ¿Puede alguien ayudarme a resolver el problema?
Mi código de vista:
<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>
Prueba este código. Esto resolverá tu problema.
public function fileUpload(Request $request) {
$this->validate($request, [
''input_img'' => ''required|image|mimes:jpeg,png,jpg,gif,svg|max:2048'',
]);
if ($request->hasFile(''input_img'')) {
$image = $request->file(''input_img'');
$name = time().''.''.$image->getClientOriginalExtension();
$destinationPath = public_path(''/images'');
$image->move($destinationPath, $name);
$this->save();
return back()->with(''success'',''Image Upload successfully'');
}
}
Puedes usarlo de manera fácil, a través del método de store
en tu controlador
como el de abajo
Primero, debemos crear un formulario con entrada de archivo para permitirnos cargar nuestro archivo.
{{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()}}
Aquí es cómo podemos manejar el archivo en nuestro controlador.
<?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);
}
}
Eso es. Ahora puede guardar $photoName
en la base de datos como un valor de campo user_photo
. Puede usar la función de asset(''avatars'')
en su vista y acceder a las fotos.
Una buena lógica para su aplicación podría ser algo como:
public function uploadGalery(Request $request){
$this->validate($request, [
''file'' => ''required|image|mimes:jpeg,png,jpg,bmp,gif,svg|max:2048'',
]);
if ($request->hasFile(''file'')) {
$image = $request->file(''file'');
$name = time().''.''.$image->getClientOriginalExtension();
$destinationPath = public_path(''/storage/galeryImages/'');
$image->move($destinationPath, $name);
$this->save();
return back()->with(''success'',''Image Upload successfully'');
}
}
Usa el siguiente código:
$imageName = time().''.''.$request->input_img->getClientOriginalExtension();
$request->input_img->move(public_path(''fotoupload''), $imageName);
creo que es mejor hacer esto
if ( $request->hasFile(''file'')){
if ($request->file(''file'')->isValid()){
$file = $request->file(''file'');
$name = $file->getClientOriginalName();
$file->move(''images'' , $name);
$inputs = $request->all();
$inputs[''path''] = $name;
}
}
Post::create($inputs);
en realidad, las imágenes son carpetas que laravel las hace automáticas y el archivo es el nombre de la entrada y aquí almacenamos el nombre de la imagen en nuestra columna de ruta en la tabla y almacenamos la imagen en el directorio público / images
// get image from upload-image page
public function postUplodeImage(Request $request)
{
$this->validate($request, [
// check validtion for image or file
''uplode_image_file'' => ''required|image|mimes:jpg,png,jpeg,gif,svg|max:2048'',
]);
// rename image name or file name
$getimageName = time().''.''.$request->uplode_image_file->getClientOriginalExtension();
$request->uplode_image_file->move(public_path(''images''), $getimageName);
return back()
->with(''success'',''images Has been You uploaded successfully.'')
->with(''image'',$getimageName);
}
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) {
}
}
}
o seguir
https://laracasts.com/discuss/channels/laravel/image-upload-file-does-not-working
o
https://laracasts.com/series/whats-new-in-laravel-5-3/episodes/12
public function store()
{
$this->validate(request(), [
''title'' => ''required'',
''slug'' => ''required'',
''file'' => ''required|image|mimes:jpg,jpeg,png,gif''
]);
$fileName = null;
if (request()->hasFile(''file'')) {
$file = request()->file(''file'');
$fileName = md5($file->getClientOriginalName() . time()) . "." . $file->getClientOriginalExtension();
$file->move(''./uploads/categories/'', $fileName);
}
Category::create([
''title'' => request()->get(''title''),
''slug'' => str_slug(request()->get(''slug'')),
''description'' => request()->get(''description''),
''category_img'' => $fileName,
''category_status'' => ''DEACTIVE''
]);
return redirect()->to(''/admin/category'');
}