登录  /  注册
博主信息
博文 53
粉丝 3
评论 0
访问量 53430
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
20200126-laravel图片上传及显示-***线上九期班
邯郸易住宋至刚
原创
737人浏览过

图片上传及显示

一、图片上传

1、图片上传代码

  1. <div class="row cl">
  2. <label class="form-label col-xs-4 col-sm-2">缩略图:</label>
  3. <form target="img" id="upload_img" enctype="multipart/form-data" method="post" action="/admins/content/upload">
  4. @csrf
  5. <input type="file" name="up" id="up" onchange="upload(this)">
  6. </form>
  7. <img src="" id="pre_img" alt="" style="width: 200px;height: 150px;">
  8. <iframe name="img" frameborder="0" style="display: none"></iframe>
  9. <script>
  10. function aaa(src){
  11. $('#pre_img').attr('src',src);
  12. }
  13. </script>
  14. </div>

2、需要注意的问题

(1)form表单中特殊属性

enctype=”multipart/form-data”,这个属性是一定要有的,另外常见的属性method、action也不能少;

(2)提交时注意iframe内联框架的使用

由于是部分提交,并不是整个文章内容的提交,所以在提交图片的时候不能让页面跳走,所以要使用iframe,这样,form中必须有target属性,其值跟iframe中name属性值必须一致;

(3)iframe不能显示

需要定义其样式style:display:none;

二、服务器端接收及存储

1、接收及存储代码

  1. public function upload(Request $request)
  2. {
  3. $path = $request->file('up')->store('public/'.date('Y/m'));
  4. $url = Storage::url($path);
  5. $str = '<script>parent.window.aaa("'.$url.'");</script>';
  6. return $str;
  7. }

2、注意的问题

(1)file()中的参数

这个参数跟前端input框中的name属性值是相同的;

(2)store()中参数就是存储的路径

这是可以自定义的,但是考虑到使用artisan命令来创建快捷方式的默认路径,所以参数中的这个路径最好是以“public/”开头,当然也可以自定义;

(3)服务器端返回的值

这个值是返回给了iframe,而iframe中并没有引用jquery等,所以只能在iframe外边定义js方法,然后在服务器端来调用( $str = ‘<script>parent.window.aaa(“‘.$url.’”);</script>‘;);
前端定义方法,给src赋值
<script>
function aaa(src){
$(‘#pre_img’).attr(‘src’,src);
}
</script>
这样,上传的图片就可以显示出来了。

本博文版权归博主所有,转载请注明地址!如有侵权、违法,请联系admin@php.cn举报处理!
全部评论 文明上网理性发言,请遵守新闻评论服务协议
0条评论
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2024 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号

  • 登录PHP中文网,和优秀的人一起学习!
    全站2000+教程免费学