联系我们

微信扫描上方二维码

本教程用于掌握前端上传文件的提交过程,开发者可以利用本教程的逻辑,开发出各种形式的文件上传组件和界面风格样式。

准备工作:

1、开发者需要在cms后台创建文件字段,例如在表单自定义字段里面去新建一个File类型的字段,名字我们随便命名为aa

前端自定义上传文件方式

记住这个文件字段的名称是:aa,id是:418.


2、在表单提交页面的form体内部,去做上传的动作,示例代码如下:

<script src="{THEME_PATH}assets/global/plugins/jquery.min.js" type="text/javascript"></script>
<input id="file" type="file" name="file"/> // 这里是html自带的表单上传
<input id="dr_file" type="hidden" value="" name="data[aa]"/> // 这里是用于提交给cms的数据,存储的文件id号
<button onclick="UpladFile()">上传文件</button> // 这是上传按钮
<label id="show_file"></label> // 这是显示上传信息的

<script type="text/javascript">

    function UpladFile() {
        $('#show_file').html('正在上传...');
        var fileObj = document.getElementById('file').files[0]; // 获取文件对象
        var FileController = "/index.php?s=api&c=file&token={dr_get_csrf_token()}&m=upload&fid=418";
        // 接收上传文件的后台地址,418是上面的字段id号
        var form = new FormData();
        form.append("author", "xunruicms");  // 可以增加表单数据
        form.append("file_data", fileObj); // 文件对象
        // XMLHttpRequest 对象
        var xhr = new XMLHttpRequest();
        xhr.open("post", FileController, true);
        xhr.onload = function () {
            var json = JSON.parse(xhr.responseText);
            if (json.code) {
                alert('上传成功');
                $('#dr_file').val(json.id); // 把上传成功的文件id赋值给表单控件
                $('#show_file').html('上传成功:'+json.info.url); // 返回文件的url
            } else {
                alert('上传失败:'+json.msg);
                $('#show_file').html('上传失败:'+json.msg);
            }
            console.log(json);
        }
        xhr.send(form);
    }

</script>

效果如下:

前端自定义上传文件方式



本文地址:https://www.xunruicms.com/doc/1195.html