Laravel Видео, аудио и загрузка изображений - PullRequest
0 голосов
/ 14 мая 2018

Это мой метод загрузки изображений из PostsController

public function store(Request $request, User $user, Image $image)
{
    $this->validate($request, [
        'image' => 'required|image|mimes:jpeg,png,jpg,gif,svg|max:2048',
        'body' => 'required'
    ]);


    if( $request->hasFile('image') ) {
        $image = $request->file('image');
        $filename = time() . '.' . $image->getClientOriginalExtension();

        Image::make($image)->save( public_path('uploads/images/' . $filename ) );
    } 

    $image = $filename;

    auth()->user()->publish(
        new Post(['body' => request('body'), 'image' => $image, 'user_id' => auth()->id()])
    );

    return redirect('/');
}

Я хочу один метод для загрузки изображения, видео и аудио, а также с одного входа, чтобы пользователь мог загрузить изображение или видео или аудио Как я могу сделать всеэти вещи в одном контроллере?

Ответы [ 2 ]

0 голосов
/ 14 мая 2018

Если вы используете запросы формы, попробуйте с кодом ниже

  public function rules() {
    $rules = [
        'some_field' => 'required',
    ];

    //  if fileType is audio
    if ($this->input('fileType') == 'audio') {
        $rules['file'] = 'mimes:mp3,mp4';
    }

    //if fileType is video
    if ($this->input('fileType') == 'video') {
         $rules['file'] = 'mimes:mp4,3gp';

    }
    return $rules;
}

имена полей и правила проверки изменяются в соответствии с вашим требованием.

0 голосов
/ 14 мая 2018

Сначала определите, является ли файл видео, аудио или изображением.Затем решите, как вы оцениваете.Надеюсь, это поможет.

if( $request->hasFile('file') ) {
		$file = $request->file('file');
		$imagemimes = ['image/png']; //Add more mimes that you want to support
		$videomimes = ['video/mp4']; //Add more mimes that you want to support
		$audiomimes = ['audio/mpeg']; //Add more mimes that you want to support

		if(in_array($file->getMimeType() ,$imagemimes)) {
			$filevalidate = 'required|mimes:jpeg|max:2048';
		}
		//Validate video
		if (in_array($file->getMimeType() ,$videomimes)) {
			$filevalidate = 'required|mimes:mp4';
		}
		//validate audio
		if (in_array($file->getMimeType() ,$audiomimes)) {
			$filevalidate = 'required|mimes:mpeng';
		}		
    }
    $this->validate($request, [
        'file' => $filevalidate,
        'body' => 'required'
    ]);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...