Laravel 文件上传 Base64编码接受并存储图片

23. January 2018 Laravel 0
官方给出了使用文件流的方式上传保存文件,若是图片,还可以通过base64编码保存成文件 $data=$request->all(); $imgdata=$imgdata[\'imgurl\']; $base64_str = substr($imgdata, strpos($imgdata, \",\")+1); $image=base64_decode($base64_str); $imgname=rand(1000,10000).time().\'.png\'; Storage::disk(\'public\')->put($imgname,$image); echo $imgname;//获取到图片名称后存储到数据库中,供以后使用。 其他情况参照官方文档 若出现跨域情况,则代码如下: <?php namespace AppHttpControllers; header(\'Access-Control-Allow-Origin:*\'); ......

Laravel AJAX 请求 & 验证

23. January 2018 Laravel 0
blade模板显示错误信息文档给出了例子,Ajax请求只有文字描述, \'当我们对 AJAX 的请求中使用 validate 方法时,Laravel 并不会生成一个重定向响应,而是会生成一个包含所有验证错误信息的 JSON 响应。 这个 JSON 响应会包含一个 HTTP 状态码 422 被发送出去.\' Ajax 使用返回的错误信息如下: <form action=\"/articlepicupload\" method=\"post\" id=\"testform\"> <input name=\"title\"> <input name=\"content\"> </form> <button onclick=\"saveajax()\">Ajax</button> <script> function saveajax() { $.ajax({ url: \"/articlepicupload\", type:\"post\", //请求类型 data:$(\"#testform\").serialize(), //请求的数据 dataType:\"json\", //数据类型 success: function(data){ }, error: function(msg) {//http状态码为422,json数据返回要在error回调函数中执行. var json=JSON.parse(msg.responseText); console.log(json.errors); }, }) } </script>

Laravel 表单请求验证

23. January 2018 Laravel 0
执行 php artisan make:request StoreBlogPost后,在生成的类中,生成authorize方法,默认返回值为false,若不需要判断权限认证,把返回值 修改成true才可,否则报错信息如下 Symfony Component HttpKernel Exception AccessDeniedHttpException This action is unauthorized. 生成的类中默认有authorize和rules方法,可手动添加messages和attributes方法完成以上功能. public function authorize() { return false; } public function rules() { return [ \'title\' => \'required|unique:posts|max:255\', \'author.name\' => \'required\', \'author.description\' => \'required\', ]; } public function messages() { return [ \'required\'=>\':attribute为必填项\', \'max\'=>\':attribute长度超过最大限制,最大255个字节\', \'unique\'=>\':attribute必须是唯一的\' ]; } ...

Laravel 快速验证实例

23. January 2018 Laravel 0
官方文档->基础功能->表单验证部分 快速验证 $this->validate($request, [ \'title\' => \'required|unique:posts|max:255\', \'author.name\' => \'required\', \'author.description\' => \'required\', ]); validate有多个参数,适用于单个或局部验证,第一个参数为$request,不解释。第二个参数为rules,即验证规则,数组形式。 第三个为messages,重写验证失败后的提示信息,数组形式。第四个为attributes,设置字段名对应的中文名称。使用代码如下: $this->validate($request, [ \'title\' => \'required|unique:posts|max:255\', \'author.name\' => \'required\', \'author.description\' => \'required\', ],[ \'required\'=>\':attribute为必填项\', \'max\'=>\':attribute长度超过最大限制,最大255个字节\', \'unique\'=>\':attribute必须是唯一的\' ],[ \'title\'=>\'题目\', \'author.name\'=>\'用户名称\', \'author.description\'=>\'用户描述\' ]); :attribute为占位符,用于显示当前字段名称。

Ubuntu下LNMP环境数据库远程访问

19. December 2017 Linux 0
第一步: grant all privileges on xxx.* to [email protected]\'%\' identified by \'root\'  //xxx为远程访问的数据库,用户名和密码对应修改 flush privileges;  //第一步没坑 第二步: 修改数据库配置文件my.cnf 下bind-address字段,注释掉或者把值改为0.0.0.0。如果有的话,在my.cnf和加载的文件中没有的话也没关系,那就不用管它。 第三步: iptables -I INPUT -p tcp --dport 3306 -j ACCEPT //在防火墙中开发3306端口,防火墙一般默认都是禁止3306访问的,参数注意使用“I”,使用“A”加到最后还是无用。 我使用过程中,使用ufw disable或者卸载iptables,都没上面那句话好使。  

Module build failed: Error: ENOENT: no such file or directory, scandir ‘*node_modules/node-sass/vendor’

14. December 2017 Laravel 0
在laravel中,运行npm install,一切正常,但在运行npm run dev 时候报错,如下: 在错误中,我发现Module build failed: Error: ENOENT: no such file or directory, scandir ‘/home/wwwroot/default/laravel5.5/node_modules/node-sass/vendor’这句话,看到目录下确实没有这个文件夹,然后执行 npm rebuild node-sass npm run dev 然后再运行就可以,具体造成此问题的原因不知,再次运行 npm run dev 就可了。 ERROR in ./node_modules/css-loader?{\"url\":true,\"sourceMap\":false,\"importLoaders\":1}!./node_modules/postcss-loader/lib?{\"sourceMap\":true,\"ident\":\"postcss\",\"plugins\":[null]}!./node_modules/resolve-url-loader?{\"sourceMap\":true,\"root\":\"/home/wwwroot/default/laravel5.5/node_modules\"}!./node_modules/sass-loader/lib/loader.js?{\"precision\":8,\"outputStyle\":\"expanded\",\"sourceMap\":true}!./resources/assets/sass/app.scss Module build failed: Error: ENOENT: no such file or directory, scandir \'/home/wwwroot/default/laravel5.5/node_modules/node-sass/vendor\' at Object.fs.readdirSync (fs.js:904:18) at Object.getInstalledBinaries (/home/wwwroot/default/laravel5.5/node_modules/node-sass/lib/extensions.js:128:13) at foundBinariesList (/home/wwwroot/default/laravel5.5/node_modules/node-sass/lib/errors.js:20:15) at foundBinaries (/home/wwwroot/default/laravel5.5/node_modules/node-sass/lib/errors.js:15:5) ...

Mysql 批量更新 1093 – You can’t specify target table ‘questions’ for update in FROM clause

01. December 2017 DataBase 0
Mysql中更新和查询条件在同一个表中会出现1093 – You can’t specify target table ‘questions’ for update in FROM clause错误,错误代码如下: update questions set number=3 where id in (SELECT id from questions WHERE choose LIKE \"%C%\" and choose NOT LIKE \"%D%\") 可通过如下方法解决: UPDATE questions s set number=3 where s.id IN (SELECT t.id from (SELECT * FROM questions WHERE choose LIKE \"%C%\" and choose ...

希尔排序ShellSort

14. November 2017 深度学习 0
PHP实现 <?php $arr = [1, 4, 3, 2, 7, 9, 33, 23, 6, 77, 44, 99, 12, 5, 6, 3, 1, 91]; function ShellSort(&$arr){ $N=count($arr); $h=1; while ($h<floor($N/3)){ $h=3*$h+1; } while ($h>=1){ for ($i=$h;$i<$N;$i++){ for ($j=$i;$j>=$h&&$arr[$j]<$arr[$j-$h];$j-=$h){ $temp=$arr[$j]; $arr[$j]=$arr[$j-$h]; $arr[$j-$h]=$temp; } } $h=floor($h/3); } } ShellSort($arr); echo implode(\',\',$arr); Python实现 def ShellSort(): N=len(arr) h=1 while h<N/3: h=3*h+1 ...

插入排序InsertSort

11. November 2017 深度学习 0
PHP实现 <?php $arr = [1, 4, 3, 2, 7, 9, 33, 23, 6, 77, 44, 99, 12, 5, 6, 3, 1, 91]; function InsertSort(array &$arr):Int{ $n= count($arr); $number=0; for($i=$n-1;$i>0;$i--){ if($arr[$i]<$arr[$i-1]){ $temp=$arr[$i-1]; $arr[$i-1]=$arr[$i]; $arr[$i]=$temp; $number++; } } if($number==0){ return 0; } for($i=2;$i<$n;$i++){ $v=$arr[$i]; $j=$i; while ($v<$arr[$j-1]){ $arr[$j]=$arr[$j-1]; $j--; } $arr[$j]=$v; } return 1; } InsertSort($arr); echo ...