纯js实现最简单的文件上传(后台使用MultipartFile)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了纯js实现最简单的文件上传(后台使用MultipartFile)相关的知识,希望对你有一定的参考价值。

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
    <title>XMLHttpRequest上传文件</title>
    <script type="text/javascript">
        var xhr;
        //上传文件方法
        function UpladFile() {
            var fileObj = document.getElementById("file").files[0]; // js 获取文件对象
            var url = "http://127.0.0.1:8080/api/attachment/upload"; // 接收上传文件的后台地址 
            
            var form = new FormData(); // FormData 对象
            form.append("file", fileObj); // 文件对象
            
            xhr = new XMLHttpRequest();  // XMLHttpRequest 对象
            xhr.open("post", url, true); //post方式,url为服务器请求地址,true 该参数规定请求是否异步处理。
            xhr.onload = uploadComplete; //请求完成
            xhr.onerror =  uploadFailed; //请求失败
            xhr.send(form); //开始上传,发送form数据
        }

        //上传成功响应
        function uploadComplete(evt) {
         //服务断接收完文件返回的结果
             
             var data = JSON.parse(evt.target.responseText);
             if(data.success) {
                 alert("上传成功!");
             }else{
                 alert("上传失败!");
             }
             
        }
        //上传失败
        function uploadFailed(evt) {
            alert("上传失败!");
        }
          //取消上传
        function cancleUploadFile(){
            xhr.abort();
        }
    </script>
</head>
<body>
    <progress id="progressBar" value="0" max="100" style="width: 300px;"></progress>
    <span id="percentage"></span><span id="time"></span>
    <br /><br />
    <input type="file" id="file" name="myfile" />
    <input type="button" onclick="UpladFile()" value="上传" />
    <!--<input type="button" onclick="cancleUploadFile()" value="取消" />-->
</body>
</html>

 

以上是关于纯js实现最简单的文件上传(后台使用MultipartFile)的主要内容,如果未能解决你的问题,请参考以下文章

GraphQL 文件上传纯 JS “必须提供查询字符串”。

使用jquery.form.js实现文件上传及进度条前端代码

纯HTML页面为了避免频繁前后台Ajax交互方案

ajaxfileupload.js上传文件时后台用java怎么接收文件流

Android实战----基于Retrofit实现多图片/文件图文上传

java 实现文件夹上传(springBoot 框架)