图片,音频其实都是文件,只是格式不一样罢了。

格式不一样,程序能检测到的信息就不一样。

比如,图片能检测到宽高。音频则检测不到。

上传它们的时候,根据不同点,进行微调就可以了。

录音:

支持mp3格式,wav格式

上传录音文件

查看录音

(未上传)

后台进行处理

大致处理过程如下:

1.上传至本地服务器

2.上传至云服务器(比如七牛)

3.删除本地服务器文件

4.保存七牛服务器的文件路径至数据库

漏了一步,上传本地服务器之前,进行过滤处理,包括判断大小是否超出,判断类型是否符合等等。

上传到本地的时候,首先要确保文件夹存储,然后确认文件名称不能重复。通常都是使用日期加随机数来避免重复。

如果文件夹不存在,则创建文件夹,并赋予777权限。一切程序都是无敌的,可以调用系统底层的代码,可以创建文件夹和赋予权限。

/**

* @param $folders 文件夹名称

* @param string $name 文件名称

* @param float|int $max_size 最大文件大小

* @param array $allowExts 允许上传的类型

* @return mixed

*/

public function upload_audio($folders, $name = 'file' ,$max_size = 1024000 * 50 ,$allowExts = ['mp3','wav']){

if($_FILES[$name]['size'] > $max_size){

$res['error'] = '音频大小不能超过50M!';

return $res;

}

import('ORG.Net.UploadFile');

$upload = new UploadFile();// 实例化上传类

$upload->allowExts = $allowExts; // 允许上传的文件格式

$upload->maxSize = $max_size; // 设置附件上传大小

$upload->saveRule = time().'_'.mt_rand();

$date_folders = date('Ymd',time());

$upload->savePath = "site_upload/".$folders.'/'.$date_folders.'/';// 设置附件上传目录

if (!is_dir($upload->savePath)){

@mkdir('./'.$upload->savePath, 0777,true);

}

$upload->upload();

$info = $upload->getUploadFileInfo();//取得成功上传的文件信息

if($info){

vendor('Func.Func');

vendor('Qiniu.Qiniu');

$qiniu = new Qiniu();

$file = C('SF_HOST'). $upload->savePath . $info[0]['savename'];

$ext = pathinfo($file, PATHINFO_EXTENSION);

$name = time() . mt_rand() . '.' . $ext;

$success = $qiniu->up($file, $name, C('QINIU.BUCKET'));

if($success){

@unlink('./' .$info[0]['savepath'] . $info[0]['savename']);

$res['msg']='ok';

$res['save_name'] = C('CDN.URI') . $name;

}else{

@unlink('./' .$info[0]['savepath'] . $info[0]['savename']);

$res['error'] = '上传失败!!';

}

}else{

$res['error']='上传失败!!';

}

return $res;

}

下面是七牛的up方法,

use Qiniu\Storage\UploadManager;

use Qiniu\Auth;

class Qiniu

{

public function up($file, $name, $bucketName = '51aitaoqi')

{

$accessKey = C('QINIU.ACCESS_KEY');

$secretKey = C('QINIU.SECRET_KEY');

$upManager = new UploadManager();

$auth = new Auth($accessKey, $secretKey);

$token = $auth->uploadToken($bucketName);

list($ret, $error) = $upManager->put($token, $name, file_get_contents($file));

if (!$error) {

return $ret;

} else {

return false;

}

}

}

经过这些折腾,音频上传成功了!

mysql如何上传音频文件_关于音频文件的上传相关推荐

  1. linux禁止客户端上传文件_实战 FastDFS Java 客户端上传文件

    FastDFS 服务端安装参考文章:分布式文件系统之 FastDFS 安装 FastDFS Java 客户端 先从 GitHub 上将项目源码克隆下来: $ git clone https://git ...

  2. python实现文件上传和下载_[Python] socket实现TFTP上传和下载

    一.说明 本文主要基于socket实现TFTP文件上传与下载. 测试环境:Win10/Python3.5/tftpd64. tftpd下载:根据自己的环境选择下载,地址 :http://tftpd32 ...

  3. tomcat temp 大量 upload 文件_渗透测试之文件上传漏洞总结

    文末下载上传环境源码 客户端 js检查 一般都是在网页上写一段javascript脚本,校验上传文件的后缀名,有白名单形式也有黑名单形式. 查看源代码可以看到有如下代码对上传文件类型进行了限制: 我们 ...

  4. JAVA 文件上传格式限制_关于servlet文件上传限制文件大小的问题,求高手帮忙

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 首先,能上传900多K的文件1M以上的文件上传不了,我也试着修改限制文件上传的大小,但是设置完了,还是有错误,代码和错误如下: upload2 DiskF ...

  5. java web上传视频文件_怎样使用javaweb实现上传视频和下载功能?

    HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> My JSP 'index.jsp' starting page ...

  6. 如何向icloud上传文件_怎么把文件上传到icloud

    1.苹果手机文档怎么传输到 icloud drive 尽管苹果为 OS X/Windows 提供了完整的 iCloud Drive 文件访问,但这在 iPhone/iPad 上却做不到.如果你希望访问 ...

  7. java 批量上传pdf文件_使用fileinput插件批量上传文件

    使用fileinput插件批量上传文件 前言 最近在做项目的时候涉及文件批量上传,使用bootstrap结合fileinput插件批量上传文件!以下是我在使用fileinput上传文件的过程.项目是基 ...

  8. exo文件_您在eXo平台上的第一个Juzu Portlet

    exo文件 菊珠是佛教的佛珠. 一句话,我相信您已经学到了什么,印象深刻吗? 好吧,我在这里不谈论佛教. Juzu还是一个用于快速开发Portlet(以及即将推出的独立应用程序)的新框架. 您可以在J ...

  9. 电脑手机wifi互传文件_安卓手机文件互传

    怎么不借用第三方工具,安卓手机实现相互文件快传呢? 苹果: 首先不用多说,苹果可以使用Air Drop功能,苹果全家桶可以无障碍互传. 长期以来,除开微信和QQ,不同品牌安卓手机互传文件依靠的途径只有 ...

  10. iphone 传android,安卓和苹果手机怎么互传文件_安卓与苹果手机之间互传文件的方法教程_3DM手游...

    一直以来,很多的app都是分为安卓和IOS两个版本,在使用上,两个平台之间很多功能都不能跨平台使用.比如大家在玩游戏时充值的东西,在苹果充值之后,同一个账号转到安卓手机上玩,那些东西都是不能迁移进来的 ...

最新文章

  1. Vagrant安装指南
  2. java 定义类变量初始化吗_Java的变量有哪些类型?变量如何定义?如何初始化?请说明理由并举例_学小易找答案...
  3. Shell数组相关操作
  4. python bool值要注意的一些地方
  5. 计算机基础知识离线作业答案,浙大远程教育计算机离线作业1.计算机基础知识题...
  6. nfc sim android8,Android NFC相关资料之MifareClassic卡(读写)
  7. 基于JAVA+SpringMVC+MYSQL的人事管理系统
  8. java 怎样 thread dump_怎样分析 JAVA 的 Thread Dumps
  9. 17.Mac Ctags 使用
  10. Python自然语言处理学习笔记(60):7.1 信息抽取
  11. 【OpenCV教程】第一章 Mac上的安装和初步使用
  12. android 获取路由器id,华为路由器从旧路由获取宽带帐号和密码具体教程
  13. Android应用中打开百度地图、高德地图、网页版百度地图
  14. java BMI体重测量代码
  15. 什么是域名系统或 DNS?
  16. 【黑马程序员】vue学习笔记(未完)
  17. vue 中 keep-alive,activated,deactivated
  18. LeetCode-2206. 将数组划分成相等数对_Python
  19. Java学习--狼人杀
  20. 计算机专业毕业设计—JAVA语言系统设计(共80套打包)

热门文章

  1. 装了Restorator,打开应用程序,提示不支持此接口的解决方法
  2. SQL(09)_UNIQUE 约束
  3. “开心偷菜”一梦8年终成空,终究还是输给了时间和规则!
  4. MIDI音乐编程那些事儿
  5. 怎么申请https证书
  6. go 实现从服务器导出excel 到浏览器
  7. 夯实数据库根科技,提升企业数智化转型的“人效”和“能效” | 数据猿
  8. 微软新的邮件帐户域名 @live.com和@windowslive.com
  9. 洛谷刷题笔记 最高分数的学生姓名
  10. 2018年最新电子科技大学TCP/IP协议原理(杨宁)CSF视频教程42讲