layui上传图片并预览

看了别的博主写的,找不到啦,等找到了再加链接。
先记录下来使用。

js

 layui.use('upload', function(){
        var $ = layui.jquery
            ,upload = layui.upload;

        //普通图片上传
        var uploadInst = upload.render({
            elem: '#test1'
            ,url: '<%=basePath%>vegetable/upload'
            ,accept:'images'
            ,size:50000
            ,before: function(obj){

                obj.preview(function(index, file, result){

                    $('#demo1').attr('src', result);
                });
            }
            ,done: function(res){
                //如果上传失败
                if(res.code > 0){
                    return layer.msg('上传失败');
                }
                //上传成功
                var demoText = $('#demoText');
                demoText.html('<span style="color: #4cae4c;">上传成功</span>');

                var fileupload = $(".image");
                fileupload.attr("value",res.data.src);
                console.log(fileupload.attr("value"));
            }
            ,error: function(){
                //演示失败状态,并实现重传
                var demoText = $('#demoText');
                demoText.html('<span style="color: #FF5722;">上传失败</span> <a class="layui-btn layui-btn-xs demo-reload">重试</a>');
                demoText.find('.demo-reload').on('click', function(){
                    uploadInst.upload();
                });
            }
        });
    });

jsp页面

<input type="hidden" name="images" class="image">
    <div class="layui-form-item">
        <label class="layui-form-label ">照片:</label>
        <div class="layui-upload">
            <button type="button" class="layui-btn" id="test1">上传图片</button>
            <div class="layui-upload-list">
                <img class="layui-upload-img" id="demo1">
                <p id="demoText"></p>
            </div>
        </div>
    </div>

java后台

//图片上传测试
    @ResponseBody
    @RequestMapping("upload")
    public Map upload(MultipartFile file, HttpServletRequest request){

        String prefix="";
        String dateStr="";
        //保存上传
        OutputStream out = null;
        InputStream fileInput=null;
        try{
            if(file!=null){
                String originalName = file.getOriginalFilename();
                prefix=originalName.substring(originalName.lastIndexOf(".")+1);
                Date date = new Date();
                String uuid = UUID.randomUUID()+"";
                SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
                dateStr = simpleDateFormat.format(date);
                String filepath = "E:\\recruitment-system\\recruitment-system\\src\\main\\resources\\static\\images\\" + dateStr+"\\"+uuid+"." + prefix;

                File files=new File(filepath);
                //打印查看上传路径
                System.out.println(filepath);
                if(!files.getParentFile().exists()){
                    files.getParentFile().mkdirs();
                }
                file.transferTo(files);
                Map<String,Object> map2=new HashMap<>();
                Map<String,Object> map=new HashMap<>();
                map.put("code",0);
                map.put("msg","");
                map.put("data",map2);
                map2.put("src","/images/"+ dateStr+"/"+uuid+"." + prefix);
                return map;
            }

        }catch (Exception e){
        }finally{
            try {
                if(out!=null){
                    out.close();
                }
                if(fileInput!=null){
                    fileInput.close();
                }
            } catch (IOException e) {
            }
        }
        Map<String,Object> map=new HashMap<>();
        map.put("code",1);
        map.put("msg","");
        return map;
    }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要将文件上到MySQL数据库,需要先将文件转换成二进制数据,然后将其插入到数据库中的BLOB类型字段中。以下是使用Layui图片并将其存入MySQL数据库的示例: 1. 在HTML中添加文件上表单: ```html <form class="layui-form" action="" enctype="multipart/form-data"> <div class="layui-form-item"> <div class="layui-upload"> <button type="button" class="layui-btn" id="uploadBtn">上图片</button> <div class="layui-upload-list"> <img class="layui-upload-img" id="previewImg"> <p id="previewText"></p> </div> </div> </div> </form> ``` 2. 引入Layui和jQuery库: ```html <link rel="stylesheet" href="https://cdn.staticfile.org/layui/2.5.6/css/layui.min.css"> <script src="https://cdn.staticfile.org/jquery/3.5.1/jquery.min.js"></script> <script src="https://cdn.staticfile.org/layui/2.5.6/layui.min.js"></script> ``` 3. 初始化Layui组件: ```javascript layui.use('upload', function(){ var upload = layui.upload; //执行上 var uploadInst = upload.render({ elem: '#uploadBtn', //绑定元素 url: '/upload/', //上接口 accept: 'images', //允许上的文件类型 size: 1024, //限制文件大小,单位KB done: function(res){ //上成功回调 $('#previewImg').attr('src', res.data.src); //显示图 $('#previewText').html(res.data.title); //显示文件名 //将文件二进制数据存入数据库 $.ajax({ type: 'POST', url: '/saveToDB/', data: { imageData: res.data.imageData //文件的二进制数据 }, success: function(data){ console.log(data); }, error: function(){ console.log('上失败'); } }); }, error: function(){ //上失败回调 console.log('上失败'); } }); }); ``` 4. 在服务器端处理上的文件,并将其存入MySQL数据库: ```php <?php //获取上的文件二进制数据 $imageData = file_get_contents($_FILES['file']['tmp_name']); //连接MySQL数据库 $servername = "localhost"; $username = "username"; $password = "password"; $dbname = "dbname"; $conn = new mysqli($servername, $username, $password, $dbname); //将文件二进制数据插入到数据库中 $stmt = $conn->prepare("INSERT INTO images (image_data) VALUES (?)"); $stmt->bind_param("b", $imageData); $stmt->execute(); $stmt->close(); $conn->close(); ?> ``` 注意:以上代码仅供参考,具体实现需要根据自己的实际情况进行调整。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值