原生的html js 做的文件上上传

html 

<div>
            <div class="row" style="border-top: 0.0rem;margin-bottom: 0.15rem;padding-top: 0.0rem">
                <div class="upload_container" style="display: flex; justify-content: flex-start;">
                    <label class="el-form-item__label">选择文件:</label>
                    <div class="upload_input" id="upload" style="margin-left: 250px">
                        <button type="button" class="btn_default query_search_btn import_btn"
                                onclick="showSelectFileWin();">
                            Choose File
                        </button>
                        <span id="showFileName" class="file_name_show">
                        No file chosen
                    </span>
                        <input type="file" @change="onChangeFile($event)" id="file" class="upload_input_area"
                               style=" display: none" name="file"/>
                    </div>
                </div>
            </div>
        </div>

<input type="button" onclick="uploadFormCancel" value="取消"/>
<input type="button" onclick="uploadFile($event)" value="上传"/>

js 

/**
         * 选择文件事件
         * @param event 事件触发点
         * @return {boolean}
         */
        onChangeFile: function (event) {
            vm.file = "";
            $("#showFileName").html("未选择文件");
            $("#showFileName").removeAttr("title");
            var str = $("#file").val();
            var index = str.lastIndexOf('.');
            var photoExt1 = str.substr(index, 5).toLowerCase();
            var photoExt2 = str.substr(index, 4).toLowerCase();
            if (photoExt1 != '' && !(photoExt1 == '.xlsx' || photoExt2 == '.xls')) {
                this.$message({
                    message: '请上传xlsx/xls文件!',
                    type: 'warning'
                });
                $("#file").val("");
                vm.isNeedFileExtension = false;
                return false;
            } else {
                var maxsize = 2 * 1024 * 1024;//2M
                var file = event.target.files[0];
                var fileSize = file.size;

                if (fileSize > maxsize) {
                    this.$message({
                        message: '上传的文件不能大于2M',
                        type: 'warning'
                    });
                    $("#file").val("");
                    vm.fileSizeIsFit = false;
                    return false;
                } else {
                    vm.file = file;
                    $("#showFileName").attr("title", vm.file.name);
                    $("#showFileName").html(vm.file.name);
                    vm.isNeedFileExtension = true;
                    vm.fileSizeIsFit = true;
                }
            }
        }, /**
         * 上传选择的文件
         * @param event
         */
        uploadFile: function (event) {
            if ($("#showFileName").text() == "No file chosen") {
                this.$message({
                    message: '请选择文件',
                    type: 'warning'
                });
            } else if (!vm.isNeedFileExtension) {
                this.$message({
                    message: '请上传xlsx/xls文件!',
                    type: 'warning'
                });
            } else if (!vm.fileSizeIsFit) {
                this.$message({
                    message: '上传的文件不能大于2M',
                    type: 'warning'
                });
            } else {
                event.preventDefault();
                var formData = new FormData();
                formData.append('file', this.file);
                formData.append('token', this.token);
                var url = baseURL + 'informationManagement/taxpayerInformationManagement/import';
                var loading = vm.getLoading("上传中...");
                $.ajax({
                    type: "POST",
                    url: url,
                    data: formData,
                    dataType: "json",
                    cache: false,//上传文件无需缓存
                    processData: false,//用于对data参数进行序列化处理 这里必须false
                    contentType: false, //必须
                    success: function (response) {
                        console.log(response)
                        loading.close();
                        $("#showFileName").html('未选择文件');
                        if (response.code == 0) {
                            this.$message({
                                message: response.msg,
                                type: 'success'
                            });
                            //vm.query();
                            //vm.uploadDialog = false;
                            /* var para = {
                                 'fileNumber': vm.aId
                             };*/
                            //vm.findFileList(para);

                            /* var pdfName = "";
                           for (var i = 0; i < response.list.length; i++) {
                                var data = response.list[i];
                                if (data.readPdfSuccess) {
                                    pdfName += '<p>文件:' + data.pdfName + '&nbsp;成功</p>';
                                    electron.listData.push(data);
                                } else {
                                    pdfName += '<p style="color: red">文件:' + data.pdfName + '&nbsp;失败</p>';
                                }
                            }
                            $("#pdfName").append(pdfName);*/
                        } else {
                            loading.close();
                            this.$message.error('系统错误!请稍后再试!');
                        }
                    },
                    error: function (response) {
                        loading.close();
                        this.$message.error('系统错误!请稍后再试!');

                    }

                });
            }
        },

/**
* 显示选择文件的窗口
*/
function showSelectFileWin() {
$("#file").val("");
$("#file").click();
}
 
原文地址:https://www.cnblogs.com/laosunlaiye/p/10695561.html