美文网首页
分析文件上传

分析文件上传

作者: sunpy | 来源:发表于2024-06-14 17:54 被阅读0次

原生态js实现文件上传功能

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta name="description" content="sunpeiyu文件上传">
    <meta name="author" content="sunpeiyu">
    <meta http-equiv="Access-Control-Allow-Origin" content="*">
    <title>Document</title>
    <style type="text/css">
        body {
            background-color: white;
        }

        form {
            border: 1px solid red;
        }
    </style>

    <script type="text/javascript">
        function uploadFile() {
            var fileObj = document.getElementById("fileId").files[0];
            var formObj = new FormData();
            formObj.append("file", fileObj);
            console.log(formObj);

            var request = new XMLHttpRequest();
            request.open("post", "http://localhost:8091/diverter/file/upload", true);
            request.send(formObj);
        }
    </script>
</head>

<body>
    <div>
        <p><span>请选择文件:</span><input type="file" id="fileId"/></p>
        <p><input type="submit" value="提交上传" onclick="uploadFile()"/></p>
    </div>
</body>
</html>

springboot后端接收上传文件并保存在指定的目录

import cn.hutool.core.io.FileUtil;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;

import java.io.File;
import java.io.IOException;

@Slf4j
@RequestMapping("/file")
@RestController
public class FileController {

    @GetMapping("/testConn")
    public String testConn() {
        log.info("=============== 测试成功");
        return "=============== 测试成功";
    }


    @PostMapping("/upload")
    public String handleFileUpload(@RequestParam("file") MultipartFile file) {
        if (file.isEmpty()) {
            return "文件为空,请选择一个文件上传。";
        }

        try {
            // 获取文件名
            String fileName = file.getOriginalFilename();
            // 获取文件的字节
            byte[] bytes = file.getBytes();
            String destFilePath = "F:\\temp" + File.separator + fileName;
            FileUtil.writeBytes(bytes, destFilePath);
            return "文件上传成功:" + fileName;
        } catch (IOException e) {
            return "文件上传失败:" + e.getMessage();
        }
    }
}

从HTTP协议分析文件上传功能

上传文件时,HTTP协议使用Content-Type为multipart/form-data,告知服务端,该请求为上传文件。然后请求体报文为kv结构,key为file。value为压缩文件,采用二进制传输。

相关文章

  • java web文件上传

    什么是文件上传 为什么使用文件上传 文件上传原理分析 上传文件注意事项 1,请求方式必须是post. 2,需要使用...

  • 上传文件的API(参考)

    这个API是用来上传文件的,具体项目具体分析.项目例子: 上传文件的方法

  • 上传文件绕过姿势

    限制上传文件扩展名 WebShell文件上传漏洞分析溯源(第1题) https://www.mozhe.cn/bu...

  • 文件的上传和下载

    文件上传的原理分析 文件上传的必要前提a、提供form表单,method必须是postb、form表单的encty...

  • 文件上传

    宝莲灯ssh框架的文件上传,前台页面需求分析

  • NO.91 Spring中文件的上传与下载

    1.文件上传业务分析 1)将文件上传到服务器,然后存储到服务器的某个位置. 2)将已上传的文件相关信息存储到数据库...

  • i春秋CTF Upload

    分析 可以上传任意文件,并且上传之后可以打开文件(源码有链接/u/xx.php),想到上传一段php代码来打开fl...

  • PHP文件上传

    HTML文件上传表单 创建上传脚本 上传限制和保存上传文件 上传多个文件

  • Windows操作系统提权实践

    1 windows分析工具利用 1.1 WinsystemHelper-master 上传bat+txt文件,运行...

  • SpringMVC实现文件上传「传统方式上传、跨服务器上传」

    SpringMVC实现文件上传 文件上传的知识回顾 文件上传的必要前提 导入文件上传的jar包 传统方式上传文件 ...

网友评论

      本文标题:分析文件上传

      本文链接:https://www.haomeiwen.com/subject/ndqaqjtx.html