为了账号安全,请及时绑定邮箱和手机立即绑定

关于图片上传问题?

关于图片上传问题?

慕运维8079593 2018-12-19 17:13:24
看到一些平台用户上传图片,直接就点击一次按钮(或图片icon),就弹出选择框,用户确认以后,图片就直接上传并在前台返回图片信息,但是通常步骤是:点击按钮1选择图片》弹出选择框》用户确认》点击按钮2确认上传,怎样实现用户选完图片确认后就直接上传,无需再点击其他按钮?我试着写一下:<input type="file" name='file' id='file' class='file'><label for='file'><img src="/images/%E5%9B%BE%E7%89%87.png" alt=""></label>把input隐藏,用ajax上传,img绑定click,点击img弹出选择框,但是第一次上传是失败的,感觉还是需要绑定另外一个按钮才能实现上传。该怎样实现?
查看完整描述

1 回答

?
慕斯709654

TA贡献1840条经验 获得超5个赞

先说下思路:


1.把input隐藏,给img标签的点击回调方法中,手动调 input 的 click 方法,这时候会弹出图片选择框,开始选择。

2.给 input 的 change 事件回调函数里,获取选择的文件。

3.用 javascript 创建 formData对象并添加选择的文件到formData对象中,手动调用 ajax 方法上传文件。


示例代码(以jQuery为例,可换成其他方式):


// html

<input type="file" name='file' id='file' class='file'>

<label for='file'>

    <img src="/images/%E5%9B%BE%E7%89%87.png" alt="">

</label>

// js


$('#file').on('change', function(e){

    var file = e.currentTarget.files;

    if (file && file[0]) {

        var fd = new FormData();

        fd.append('file', file);

        

        // 调用ajax请求,上传文件

        $.ajax('/xxxx', fd)

        .....

    }

});


查看完整回答
反对 回复 2019-01-13
  • 1 回答
  • 0 关注
  • 409 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号