当前位置: 首页 > 知识库问答 >
问题:

我怎么能允许把音频和音乐通过文件上传在laravel

彭存
2023-03-14

我想允许音频,文档和视频文件类型在上传文件。我的问题是,我应该如何允许音频、文档和视频通过文件上传?在我的代码中,允许使用的文件有:png、gif、jpeg、txt、pdf、docx。这是我的密码

我的控制器

<?php 
namespace App\Http\Controllers;
use Illuminate\Support\Facades\Input;
use Validator;
use Redirect;
use Request;
use Session;
use App\Administrator;
class ApplyController extends Controller 
{
  public function multipleUpload()
  {
    return view('multiple_upload');
  }
  public function multipleUploadPost() {
    // getting all of the post data
    $files = Input::file('images');
    // Making counting of uploaded images
    $file_count = count($files);
    // start count how many uploaded
    $uploadcount = 0;
    foreach($files as $file) {
      $rules = array('file' => 'required'); //'required|mimes:png,gif,jpeg,txt,pdf,docx' 
      $validator = Validator::make(array('file'=> $file), $rules);

      if($validator->passes()){
        $destinationPath = 'uploads';
        $filename = $file->getClientOriginalName();
        $extension = $file->getClientOriginalExtension()  ;
        if($extension == "jpg" || $extension == "PNG" )
        {
          $destinationPath = 'uploads/image';

        }
        else if ($extension == "docx" || $extension == "doc")
        {
          $destinationPath = 'uploads/documents';

        }
        else if ($extension == "pdf")
        {
          $destinationPath = 'uploads/pdf';

        }
        else if ($extension == "xls")
        {
          $destinationPath = 'uploads/excel';

        }
        $changeFileName = str_random(40).'.'.$extension;

        $upload_success = $file->move($destinationPath, $changeFileName);
        $uploadcount ++;
        Administrator::create([ // Administrator is the name of my model
            'original_filename' => $filename, // Insert the image to the database in column "image"
            'change_filename' => $changeFileName // Insert the image to the database in column "image"
        ]);
      }

    }
    if($uploadcount == $file_count){
      Session::flash('success', 'Upload successfully'); 
      return Redirect::to('multiple-upload');
    } 
    else {
      Session::flash('alert', 'Upload failed'); 

      return Redirect::to('multiple-upload')->withInput()->withErrors($validator);
    }
  }
}

我的看法

<div class="text-content">
  <div class="span7 offset1">
  @if(Session::has('success'))
    <div class="alert-box success">
      <h2>{!! Session::get('success') !!}</h2>
    </div>
  @endif
  <div class="secure">Upload form</div>
  {!! Form::open(array('url'=>'apply/multiple_upload','method'=>'POST', 'files'=>true)) !!}

    <div class="control-group">
      <div class="controls">
      {!! Form::file('images[]', array('multiple'=>true)) !!}
  <p class="errors">{!!$errors->first('images')!!}</p>
  @if(Session::has('error'))
  <p class="errors">{!! Session::get('error') !!}</p>
  @endif
     </div>
</div>
{!! Form::submit('Submit', array('class'=>'send-btn')) !!}
{!! Form::close() !!}
</div>

共有1个答案

陈昂熙
2023-03-14

使用Mime验证,该验证只允许您指定的格式

例如:

    foreach ($files as $file){
        $validator = Validator::make(
            array(
                'file'              =>      $file,
                'extension'         =>      strtolower($file->getClientOriginalExtension()),
            ),
            [
                'file'              =>      'required|max:100000',
                'extension'         =>      'required|in:mp3,mp4,doc',
            ],[
                'file.required' => 'File is Required',
                'extension.in' => ' File Should be of type mp3,mp4 or doc'
            ]
        );
        if($validator->fails()){
            return response()->json(['status' => 'fail', 'data' => null, 'msg' => $validator->errors()], 200);
        }
        else{
            dd("success");
        }
    }

MIME类型列表可用

http://svn.apache.org/repos/asf/httpd/httpd/trunk/docs/conf/mime.types

希望这对你有帮助

 类似资料:
  • 我一直无法让应用程序录制音频,同时让iPhone音乐应用程序通过蓝牙扬声器播放。 例如,如果我这样做: 然后音乐应用程序将开始通过iPhone内置的扬声器播放音乐,而不是通过蓝牙。换句话说,似乎没有办法在应用程序中录制音频的同时还允许通过蓝牙播放音乐。 如果我删除AVAudioSessionColloryOptionDefaultToSpeaker,那么音频路由将切换到接收器。这比让它通过iPho

  • 我在API网关中创建了一个API,用于将音频文件上载到s3,该文件作为多部分/表单数据从本地PC发送。 API集成请求如下所示 在URL路径参数中,添加bucket作为param,直接添加bucket名称 当我尝试上载文件时,收到错误响应, 需要做哪些更改?

  • 另外,在绘制图形时,我如何使图形出现在GUI上?

  • 录制完一个呼出的电话后,我试图播放录制的文件——以确保通话录音按预期工作(我使用“媒体播放器”进行),但没有声音。所以我试图访问手机上的实际文件(只需将手机连接到电脑上并访问它的文件)。当我播放录音时,它的长度是正确的,但同样没有声音。 我错过了什么? 这是我记录电话的方式: 这是结束通话记录的代码: 这是我播放音频文件的方式:

  • 如果一些文件是带音频的视频,而一些文件只是音频,是否可以连接多个文件。最终结果应该如下所示: 我认为这一定是可能的,因为我也可以结合一个大的音频文件和一个小的视频与FFMPEG。结果将是一个视频文件,其中最后一帧只是冻结,但音频仍然播放。我想实现相同的结果,要么冻结最后一帧或简单的黑色帧。这可能吗?

  • 音频播放 AudioSource 组件参考 兼容性说明