图片上传到服务器

图片上传到服务器

layui框架

HTML

<div class="layui-form-item">
        <label class="layui-form-label">照片</label>
        <div class="layui-input-block">
            <button type="button" class="layui-btn" id="upload1">上传图片</button>
            <input type="hidden" id="img_url" name="url" value=""/>
            <div class="layui-upload-list">
                <img class="layui-upload-img" width="100px" height="80px" id="demo1"/>
                <p id="demoText"></p>
            </div>
        </div>
    </div>

这里写图片描述

script

<script type="text/javascript">
//图片上传
    layui.use('upload', function(){
        var upload = layui.upload
            , $ = layui.jquery;
        var uploadInst = upload.render({
            elem: '#upload1' //绑定元素
            ,url: "template/img.do" //上传接口
            ,before: function(obj){
                //预读本地文件示例,不支持ie8
                obj.preview(function(index, file, result){
                    $('#demo1').attr('src', result); //图片链接(base64)
                });
            }
            ,done: function(res){
                //如果上传失败
                if(res.code > 0){
                    return layer.msg('上传失败');
                }
                //上传成功
                alert("上传成功");
                document.getElementById("img_url").value = res.url;

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

</script>

控制层

/**
     * @Method 图片上传
     * @author 
     * @createTime 
     */
    @RequestMapping(value = "img" , method = RequestMethod.POST)
    @ResponseBody
    public Map<String, Object>  upload(HttpServletRequest servletRequest,HttpServletRequest request,
                         @RequestParam("file") MultipartFile file
                         ) throws IOException {

        //如果文件内容不为空,则写入上传路径
        if (!file.isEmpty()) {


            //上传文件路径
            //获取服务器位置
            String pathss = request.getSession().getServletContext().getRealPath("");
            //这些是项目需要 要改变路径
            String paths = pathss.substring(0,pathss.indexOf("admin"));
            String ll = "admin-img";
            String path =paths + ll;
            System.out.println("路径"+path);

            System.out.println("文件名称"+file.getOriginalFilename());
            //上传文件名
            String filename = file.getOriginalFilename();
            File filepath = new File(path, filename);


            //判断路径是否存在,没有就创建一个
            if (!filepath.getParentFile().exists()) {
                filepath.getParentFile().mkdirs();
            }

            //将上传文件保存到一个目标文档中
            File file1 = new File(path + File.separator + filename);
            file.transferTo(file1);
            Map<String, Object> res = new HashMap<>();
            //返回的是一个url对象
            res.put("url", file1);
            return res;

        } else {
            return null;
        }

    }

上传成功后页面回显照片
这里写图片描述

html页面里有隐藏 input 保存图片路径
这里写图片描述
至此文件上传任务已经完成了,现在表单中隐藏的input已经保存了文件的url,那么,接下来就是简单的纯文本form提交。这个不难,用ajax提交行,正常提交也可以。

另外这是我的第一篇博客

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值