Creating Server TCP listening socket *:6379: bind: No such file or directory
解决方法,依次输入以下命令
1. redis-cli.exe
2. Shutdown
3. Exit
4. redis-server.exe
Routes.php是可以更改的,设置的位置是App->Providers->RputeServiceProvider.php
在App->Http->Kernel.php中,是设置的中间件,这个是可以自定义的,
在Middleware中添加中间件Cors.php,在Kernel.php中可以增加
Mui是我自定义的一个中间件组名字;运行Kernel类的handle方法,主要动作是运行middleware和启动URL相关的Contrller;
在手机端访问的时候,就会加载mui的中间件组;
在VerifyCsrfToken中,可以设置不需要验证(即{!! csrf_field() !!})的路由名,
这样所有mui/*的路由,对post提交都没有验证,也可以在Kernel.php中间件组中去掉\App\Http\Middleware\VerifyCsrfToken::class,
判断下对象是否存在就可以,
这里面{{ method_field('PATCH') }} {{ csrf_field() }} 是用于PATCH提交的,浏览器不识别PATCH PUT DELETE这些提交方式,只识别GET POST
Laravel可以使用datatables,以下是我使用datatables的流程及问题;
1.安装
在cmd中打出
composer require yajra/laravel-datatables-oracle:~5.0
即可使用composer安装datatables
在config/app.php中添加:
yajra\Datatables\DatatablesServiceProvider::class,
'Datatables' => yajra\Datatables\Datatables::class,
生成配置文件:
php artisan vendor:publish
这样子就安装完了
详情参考:
http://blog.csdn.net/hooloo/article/details/50415949
2.使用
1、引入:
在所需的controller中引入use Datatables;
在app.blade.php界面中引入jquery.dataTables.js和jquery.dataTables.css
引入在href="{{ URL::asset('地址') }}";
地址是放在public文件夹下的文件
2、Controller端
Controller端放置一个跳转页面:
一个datatables查询页面:
跟laravel自己查询一样,只不过不需要在结尾添加->get()或->frist()等方法;
直接Datatables::of($result)->make(true);即可;
Datatables还有一些相关方法,可以参考:https://packagist.org/packages/yajra/laravel-datatables-oracle
3、前端页面
其他字段都差不多
3.自定义
由于数据库中保存的是加密后的数据,所以用户管理中,展现的数据必须是解密后的,这就需要我修改datatables源码来满足我的需求,
decryptMake这个是我自定义的源码方法名,好吧,说实话,我都忘了我是咋弄的了,勉强找到这个方法,等我清醒的时候再回忆回忆。
这两个方法是我自定义的,应该是仿照make方法写的。
主要的目的是对相关字段进行解密,我也没写什么高深的方法,只是在vendor\yajra\laravel-datatables-oracle\src\yajra\Datatables\Engines\QueryBuilderEngine.php页面中添加两个方法decryptMake和decryptRender,实现我功能的是decryptRender方法,主要是在下面添了一段话
我忘了object是干嘛的了,但好像没那么重要。
eyJpdiI6Ik56bEdSRUZLTVRWSVZXUm9aamc1Wmc9PSIsInZhb这段字符串是所有加密的密文里都有的,所以我拿它作为是否为密文的判断依据,其他就没啥了。
4.错误
项目上线后,发现运维管理模块的datatables不好使,报出Failed to load resource: the server responded with a status of 404 (Not Found)错误
上网查了一下,是因为url有问题,
但在本地测试是好使的,同样的url把ip地址和端口改为本地的,都好使,而且用户管理也是使用的datatables也是好使的,所以,我推测是url字符过长导致的错误,后来验证了下,的确是这样,服务器对get请求的字符有长度限制,我把url改成post请求,就好使了。
以下是浏览器对get请求的限制,作为扩展知识,本次报错是服务器对get请求的限制,不是浏览器:
http://blog.csdn.net/M_ChangGong/article/details/5764711
有帮助的文档:
http://laravelacademy.org/post/2333.html?utm_source=tuicool&utm_medium=referral
http://www.jianshu.com/p/76ba6a417561
http://blog.csdn.net/zhangfei8625/article/details/43057163
1. 前端
前端很简单,只要是在form表单中添加enctype="multipart/form-data"这句话,就可以实现文件的上传,同时type定义为file就可以了
2. 后端
如果是保存到其他空间,可以在config-filesystems.php中设置
这里面public_path代表着public目录下,该目录的文件,可以无需注册,可直接访问,这样不怎么安全,一些重要的数据最好是放在其他位置,可以放在storage目录下
后台相关代码:
若是手机端传图片,后台存储的话:
$_FILES判断是否有图片传入
详细代码:
若上传失败,显示未获取到文件,有可能是上传的文件超出了php接收上限,修改php.ini文件中的post_max_size 和upload_max_filesize字段就行了
相关文档:http://www.365mini.com/page/php-upload-file-exceed-limit.htm
1、安装
使用Composer安装依赖
首先在Laravel项目根目录下使用Composer安装依赖:
composer require maatwebsite/excel ~2.0.0
安装后的设置
在config/app.php中注册服务提供者到providers数组:
Maatwebsite\Excel\ExcelServiceProvider::class,
同样在config/app.php中注册门面到aliases数组:
'Excel' => Maatwebsite\Excel\Facades\Excel::class,
如果想要对Laravel Excel进行更多的自定义配置,执行如下Artisan命令:
php artisan vendor:publish
执行成功后会在config目录下生成一个配置文件excel.php。
2、导入
3、捕获异常
相关文档:
http://blog.csdn.net/small_whale/article/details/51917211
http://bbs.csdn.net/topics/390011157
参考:https://www.cnblogs.com/love-snow/articles/7246475.html
我没有用上下载的zip包,而是直接到项目根目录下输入
composer require php-ffmpeg/php-ffmpeg
好像也引进去了
在vendor目录下:
我看看咋用^_^
参考:
https://www.cnblogs.com/peteremperor/p/6477743.html(推荐)
http://blog.csdn.net/qq_38568388/article/details/78820809(参考)
https://laravel-china.org/topics/327/using-ffmpeg-to-deal-with-multimedia-files-under-laravel
直接create()的时候一直都提示:
local.ERROR: exception 'Alchemy\BinaryDriver\Exception\ExecutableNotFoundException' with message 'Executable not found, proposed : avprobe, ffprobe' in D:\xxxx\vendor\alchemy\binary-driver\src\Alchemy\BinaryDriver\AbstractBinary.php:160
估计是因为没有找到对的地址: https://github.com/PHP-FFMpeg/PHP-FFMpeg
根据这个,有下载了
这个,放入到php_ffmepg中,然后将对应的ffmpeg.exe和ffprobe.exe目录放入到create中
又一个问题:
local.ERROR: exception 'Alchemy\BinaryDriver\Exception\ExecutionFailureException' with message 'ffmpeg failed to execute command "D:\xxxx\vendor\php-ffmpeg\php-ffmpeg\bin\ffmpeg.exe" "-y" "-i" "D:\iEBP4JLSI-PHP\public/uploads/ceshi/Audio.mp3" "-threads" "12" "-acodec" "libfaac" "-b:a" "128k" "D:\iEBP4JLSI-PHP\public/uploads/video/video.pcm"' in D:\xxxx\vendor\alchemy\binary-driver\src\Alchemy\BinaryDriver\ProcessRunner.php:100
代表你选择的格式$format = new FFMpeg\Format\Audio\Vorbis();与要转换的格式不符
是音频格式有问题,对方写的格式是视频,改成音频就可以了,代码如下:
而后与百度语音识别进行交互,自定义类库引入问题可以参考:http://blog.csdn.net/darry_zhao/article/details/52689635
与百度语音识别交互时,如果语音差别非常大,就说明你上传的音频不符合对方的要求:
设置ffmpeg转换格式时,setAudioChannels为音频声道设置设为1即可,setAudioKiloBitrate为音频码率设置,设为8或16都可以。