проблемы проверки звука laravel 5.4

проблемы проверки звука laravel 5.4

17.06.2017 03:42:11 Просмотров 20 Источник

Я пытаюсь проверить мою форму запроса. То, что я делаю, это я должен загрузить аудио,то есть mp3, wav и т. д., Проблема, с которой я сталкиваюсь, заключается в том, что он продолжает бросать сообщение об ошибке на меня, говоря: "тип файла должен быть mp3", я попытался загрузить изображение, и он сказал, что тип файла должен быть mp3, я также попытался загрузить mp3, и он говорит то же самое, Ниже приведен мой аудиоконтроллер.

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use Validator;

class UploadController extends Controller
{
public function uploadsingle(Request $request)
{
    $validator = Validator::make($request->all(), [
        'song' => 'required|mimes:image/png',
    ]);

    if($validator->fails()){
        return redirect()->back()->withErrors($validator)->withInput();
    }

    ///save audio, etc
    echo 'validation passed';
}
}

это мой HTML код

<title>Upload page</title>
@include('layouts.page-life')
@include('layouts.navbar')




<h1>Upload Page</h1>
<br>
<form action="{{ route('doupload') }}" method="POST">
{{ csrf_field() }}
@if (count($errors) > 0)
        <div class="alert alert-danger alert-dismissible" role="alert">
            <ul>
            <button type="button" class="close" data-dismiss="alert" aria-label="Close"><span aria-hidden="true">&times;</span></button>
                @foreach ($errors->all() as $error)
                    <li>{{ $error }}</li>
                @endforeach
            </ul>
        </div>
        @endif

<input name="song" type="file"/>
<br>
<button class="btn">Submit</button>
</form>
У вопроса есть решение - Посмотреть?

Ответы - проблемы проверки звука laravel 5.4 / audio validation issues laravel 5.4

Ganesh

17.06.2017 03:52:27

Обновите код, чтобы отразить Для mp3-mpgaиспользуется.

$validator = Validator::make($request->all(), [
    'song' => 'required|mimes:mpga,wav',
]);
https://stackoverflow.com/questions/44604776/audio-validation-issues-laravel-5-4/44604864#comment76197466_44604864
он выдает сообщение об ошибке проверки, в котором говорится: "песня должна быть файлом типа: mpga.'
https://stackoverflow.com/questions/44604776/audio-validation-issues-laravel-5-4/44604864#comment76197486_44604864
он выдает сообщение об ошибке проверки, в котором говорится: "песня должна быть файлом типа: mpga.'
https://stackoverflow.com/questions/44604776/audio-validation-issues-laravel-5-4/44604864#comment76200790_44604864
Вы можете разместить "var_dump" файла?
Dhaval_512

17.06.2017 03:53:00

Попробуйте "mimes: mpga" для mp3-файлов. 'mimes:wav' должен быть хорош для файлов wav.

 $validator = Validator::make($request->all(), [
    'song' => 'required|mimes:mpga,wav',
]);

проверьте наличие расширения, http://svn.apache.org/repos/asf/httpd/httpd/trunk/docs/conf/mime.types

https://stackoverflow.com/questions/44604776/audio-validation-issues-laravel-5-4/44604868#comment76197482_44604868
он выдает сообщение об ошибке проверки, в котором говорится: "песня должна быть файлом типа: mpga.'
Paul Caleb

02.08.2017 02:16:56

я использовал

$validator = Validator::make($request->all(), [
'song' => 'required|mimes:audio/mpeg',
]);

...и это сработало, он правильно проверил mp3-файл, спасибо большое за вашу помощь :)

https://stackoverflow.com/questions/44604776/audio-validation-issues-laravel-5-4/45449037#comment92182325_45449037
Вы ничего не подтверждали. Согласно вашему методу проверки, это кошка.
Fj2t

02.10.2018 02:52:25

В версии 5.5 Laravel:

Это не правильная форма, так как это общая проверка, но сейчас это единственный способ проверить, что был сделан только mp3.

$validator = Validator::make($request->all(), [
    'audio' => 'required|mimetypes:application/octet-stream',
]);
https://stackoverflow.com/questions/44604776/audio-validation-issues-laravel-5-4/52607786#comment92182412_52607786
Это просто глупо. application/octet-streamявляется универсальным типом mime и не имеет никакого отношения к проверке звука вообще.
https://stackoverflow.com/questions/44604776/audio-validation-issues-laravel-5-4/52607786#comment92182782_52607786
Это может быть глупо, но это решение, чтобы разрешить только mp3. Укажите решение, потому что я не нашел другого.
https://stackoverflow.com/questions/44604776/audio-validation-issues-laravel-5-4/52607786#comment92182872_52607786
Таким образом, вы ничего не проверяете, Вы просто отключаете проверку. Как это связано с вопросом ОП?
https://stackoverflow.com/questions/44604776/audio-validation-issues-laravel-5-4/52607786#comment92183127_52607786
Как я уже указывал, таким образом, он позволяет мне загружать аудио только с расширением "mp3". Указывает правильную форму и то, что работает, и закрывает тему.
Amrit Shrestha

03.10.2018 12:54:40

Следующие проверки будут принимать в формате WAV, MP3 и т. д. Этот код работает для меня.

$validator = Validator::make($request->all(), [
  'song' => 'required|mimes:application/octet-stream,audio/mpeg,mpga,mp3,wav',
]);

или запишите его в отдельный файл запроса: например: app/Http/Requests/SongStoreRequest.php

public function rules(){
  ['song' => 'required|mimes:application/octet-stream,audio/mpeg,mpga,mp3,wav'];
}
https://stackoverflow.com/questions/44604776/audio-validation-issues-laravel-5-4/52624382#comment92182244_52624382
application/octet-streamявляется универсальным типом mime и не имеет никакого отношения к проверке звука вообще.
Dimsich

04.12.2019 10:28:01

Попробовать это:

    $this->validate($request, [
    'file_mp3' => ['required', function ($attribute, $value, $fail) {
        if ($value->getClientOriginalExtension() != 'mp3') {
            $fail(':attribute must be .mp3!');
        }

    }]
]);
Закрыть X