后盾网lavarel视频项目---图片上传

一、总结

一句话总结:

前端还是普通的前端操作,前端上传图片的地址就是图片上传的路由,后端代码也很简单
    public function uploader(Request $request){
$upload = $request->file;
if ($upload->isValid()) {
$path = $upload->store(date('ym'), 'attachment');
//message是上传成功的url地址
return ['valid' => 1, 'message' => asset('attachment/'.$path)];
} return ['valid' => 0, 'message' => '上传失败文件大小不能超过2MB'];
}

1、图片上传后端核心代码?

1、$upload = $request->file;
2、if ($upload->isValid()) {
3、$path = $upload->store(date('ym'), 'attachment');
    public function uploader(Request $request){
$upload = $request->file;
if ($upload->isValid()) {
$path = $upload->store(date('ym'), 'attachment');
//message是上传成功的url地址
return ['valid' => 1, 'message' => asset('attachment/'.$path)];
} return ['valid' => 0, 'message' => '上传失败文件大小不能超过2MB'];
}

二、图片上传

lavarel文档位置:

https://learnku.com/docs/laravel/5.7/requests/2257#retrieving-uploaded-files

1、修改配置,设置存储引擎

config/filesystems.php

     'disks' => [

         //fry增加的
'attachment' => [
'driver' => 'local',
'root' => 'attachment',
],

增加了attachment存储引擎

 

2、控制器中代码

app/Http/Controllers/Component/UploadController.php

 <?php

 namespace App\Http\Controllers\Component;

 use Illuminate\Http\Request;
use App\Http\Controllers\Controller; class UploadController extends Controller
{
public function uploader(Request $request){
$upload = $request->file;
if ($upload->isValid()) {
$path = $upload->store(date('ym'), 'attachment');
//message是上传成功的url地址
return ['valid' => 1, 'message' => asset('attachment/'.$path)];
} return ['valid' => 0, 'message' => '上传失败文件大小不能超过2MB'];
} public function filesLists(){
return ['data' => [], 'page' => ''];
}
}

3、路由

routes/web.php

//文件上传路由
Route::any('/component/uploader','Component\UploadController@uploader');
Route::any('/component/filesLists','Component\UploadController@filesLists');

4、视图

                     <div class="form-group">
<label for="preview" class="col-sm-2 control-label">预览图</label>
<div class="col-sm-10">
<div class="input-group">
<input type="text" class="form-control" name="preview" readonly=""
value="images/nopic.jpg" required>
<div class="input-group-btn">
<button onclick="upImage(this)" class="btn btn-default"
type="button">选择图片
</button>
</div>
</div>
<div class="input-group" style="margin-top:5px;">
<img src="{{asset('images/nopic.jpg')}}"
class="img-responsive img-thumbnail" width="150">
<em class="close" style="position:absolute; top: 0px; right: -14px;"
title="删除这张图片" onclick="removeImg(this)">×</em>
</div>
</div>
<script>
//上传图片
function upImage(obj) {
require(['util'], function (util) {
options = {
multiple: false,//是否允许多图上传
};
util.image(function (images) { //上传成功的图片,数组类型
$("[name='preview']").val(images[0]);
$(".img-thumbnail").attr('src', images[0]);
}, options)
});
} //移除图片
function removeImg(obj) {
$(obj).prev('img').attr('src', 'resource/images/nopic.jpg');
$(obj).parent().prev().find('input').val('');
}
</script>
</div>

hdjs配置

<!-- 后端js -->
<script>
//HDJS组件需要的配置
hdjs = {
'base': '/node_modules/hdjs',
'uploader': '/component/uploader',
'filesLists': '/component/filesLists?',
'removeImage': '?s=component/upload/removeImage&m=member&siteid=18',
'ossSign': '?s=component/oss/sign&m=member&siteid=18',
};
</script>
<script src="/node_modules/hdjs/require.js"></script>
<script src="/node_modules/hdjs/config.js"></script>
<link href="/css/hdcms.css" rel="stylesheet">

5、效果

attachment目录下的1909里面就是上传好的图片

 

后盾网lavarel视频项目---图片上传的更多相关文章

  1. 后盾网lavarel视频项目---lavarel多表关联一对多操作实例

    后盾网lavarel视频项目---lavarel多表关联一对多操作实例 一.总结 一句话总结: 1.一对多中多那个部分的数据前端通过json弄到服务器 2.所有通过一操作多的时候,都要用上模型中定义的 ...

  2. 后盾网lavarel视频项目---Vue项目使用vue-awesome-swiper轮播插件

    后盾网lavarel视频项目---Vue项目使用vue-awesome-swiper轮播插件 一.总结 一句话总结: vue中的插件的使用和js插件的使用一样的简单,只是vue插件的引入过程有些不同 ...

  3. 后盾网lavarel视频项目---4、lavarel和vue都是{{}}表示变量,如何解决冲突

    后盾网lavarel视频项目---4.lavarel和vue都是{{}}表示变量,如何解决冲突 一.总结 一句话总结: @{{videos}}:@符号表示lavarel不处理:textarea nam ...

  4. 后盾网lavarel视频项目---3、lavarel中子控制器继承父控制器以判断是否登录

    后盾网lavarel视频项目---3.lavarel中子控制器继承父控制器以判断是否登录 一.总结 一句话总结: 在common控制器的构造方法中验证登录中间件,其它的控制器继承common控制器 p ...

  5. 后盾网lavarel视频项目---1、数据迁移

    后盾网lavarel视频项目---1.数据迁移 一.总结 一句话总结: 1.lavarel的数据迁移比较简单,就是用php来创建数据表 2.创建迁移文件:php artisan make:migrat ...

  6. 后盾网lavarel视频项目---5、淘宝镜像cnpm的原理及如何使用

    后盾网lavarel视频项目---5.淘宝镜像cnpm的原理及如何使用 一.总结 一句话总结: 原理:把npm上面的所有软件copy过来 使用:npm install -g cnpm --regist ...

  7. 后盾网lavarel视频项目---lavarel使用模型进行增删改查操作

    后盾网lavarel视频项目---lavarel使用模型进行增删改查操作 一.总结 一句话总结: 使用模型操作常用方法 查一条:$model=Tag::find($id); 删一条:Tag::dest ...

  8. 后盾网lavarel视频项目---Laravel 安装代码智能提示扩展「laravel-ide-helper」

    后盾网lavarel视频项目---Laravel 安装代码智能提示扩展「laravel-ide-helper」 一.总结 一句话总结: laravel-ide-helper作用是:代码提示 larav ...

  9. 后盾网lavarel视频项目---laravel 使用laracasts/flash插件提示信息

    后盾网lavarel视频项目---laravel 使用laracasts/flash插件提示信息 一.总结 一句话总结: laracasts/flash插件的效果就是一个弹出的boostrap模块框, ...

随机推荐

  1. with as 语句

    with就是一个sql片段,供后面的sql语句引用. 详情参见:https://www.cnblogs.com/Niko12230/p/5945133.html

  2. JS语法学习笔记-菜鸟教程

    现在只需要<script></script>标签 javascript通常做法是放在<head>部分中,或者放在页面底部,这样可以把他们安置在同一位置,不会干扰页面 ...

  3. 丑陋的 shell 来一遍

    学习使人进步,好记性不如烂笔头 在线正则 在线正则 ^(.)(.).*?\2\1$ 正式开始总结 cat 反过来读取文件 tac file.txt nl --> number line 如 ca ...

  4. 微信小程序(7)--微信小程序连续旋转动画

    微信小程序连续旋转动画 https://mp.weixin.qq.com/debug/wxadoc/dev/api/api-animation.html <view animation=&quo ...

  5. docker容器内安装 rz、sz

    操作系统:ubuntu rz.sz命令找不到: 执行命令:apt-get update && apt-get install lrzsz

  6. Java异常try里面有return,finally代码会执行吗

    try{}里有一个return语句,那么紧跟在这个try后的finally{}里的code会不会被执行,什么时候被执行,在return前还是后? 肯定会执行.finally{}块的代码只有在try{} ...

  7. IDEA查看JDK源代码

    之前已经讲解过如何使用Eclipse查看源代码,IDEA作为一个集成开发环境越来越流行,今天学习以下如何使用Eclipse查看JDK的代码. File->Project Structure,选择 ...

  8. mysqli在php7中的使用

    mysqli这个库还是比较繁杂的,这其中又分mysqli ,mysqli_stmt,mysqli_result......一堆类,特别乱 这里奉上thinkphp5.1中使用mysqli扩展的查询用法 ...

  9. Harbor ($docker login) Error saving credentials

    $ sudo apt-get install $ sudo apt-get install gnupg2 pass 问题解决!

  10. layui 批量上传

    <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="piclist.aspx.c ...