zoukankan      html  css  js  c++  java
  • 文件上传

    form形式的文件上传

    <form class="form-group" method="post" action="/upload/" enctype="multipart/form-data">
      <!-- enctype="multipart/form-data" 上传文件时必须添加 -->
      
      {% csrf_token %}
      <label for="">文件上传</label>
      <input type="file" class="form-control-file" name="file" id="file" placeholder="请选择文件" aria-describedby="fileHelpId">
      <!-- <input type="button" value="提交" id='submit'> -->
      <input type="submit" value="提交">
      <small id="fileHelpId" class="form-text text-muted"></small>
    </form>   
    

    Ajax形式的文件上传

    <!doctype html>
    <html lang="en">
    <head>
        <title>Title</title>
        <!-- Required meta tags -->
        <meta charset="utf-8">
        <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
    
        <!-- Bootstrap CSS -->
        <link href="https://cdn.bootcss.com/twitter-bootstrap/4.3.1/css/bootstrap.min.css" rel="stylesheet">
    </head>
    <body>
    <div class="container">
        <div class="row">
            <div class="form-group">
              {% csrf_token %}
              <label for="">文件上传</label>
              <input type="file" class="form-control-file" name="file" id="file" placeholder="请选择文件" aria-describedby="fileHelpId">
              <input type="button" value="提交" id='submit'>
              <small id="fileHelpId" class="form-text text-muted"></small>
            </div>        
        </div>
    </div>
    
    <!-- Optional JavaScript -->
    <!-- jQuery first, then Popper.js, then Bootstrap JS -->
    <script src="https://cdn.bootcss.com/jquery/3.4.1/jquery.min.js"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.7/umd/popper.min.js"
            integrity="sha384-UO2eT0CpHqdSJQ6hJty5KVphtPhzWj9WO1clHTMGa3JDZwrnQq4sF86dIHNDz0W1"
            crossorigin="anonymous"></script>
    <script src="https://cdn.bootcss.com/twitter-bootstrap/4.3.1/js/bootstrap.min.js"></script>
    <script>
        $('#submit').click(function(){
            var formData = new FormData();
            formData.append('file', $('#file')[0].files[0]);
            formData.append('csrfmiddlewaretoken', $("[name='csrfmiddlewaretoken']").val());
    
            $.ajax({
                url: '/upload/',
                type: 'post',
    
    			// 上传文件时,这两个参数时必须的。
                processData: false,
                contentType: false,
    
                data: formData,
                success: function(rsp){
                    console.log(rsp);
                }
            });
        });
    </script>
    </body>
    </html>
    

    服务端代码

    def upload(request):
        if request.method == 'POST':
            print(request.FILES)
            file = request.FILES.get('file')
            file_path = os.path.join(settings.BASE_DIR, 'media', 'img', file.name)
            with open(file_path, 'wb') as f:
                for i in file:
                    f.write(i)
            return JsonResponse({'code': 0, 'msg': '上传成功'})
        return render(request, 'upload.html')
    
  • 相关阅读:
    【转贴】龙芯生态产品和解决方案巡展(第四篇)——存储
    【转贴】龙芯生态产品和解决方案巡展(第五篇)——云终端
    【转贴】龙芯生态产品和解决方案巡展(第六篇) ——操作系统
    【转贴】龙芯生态产品和解决方案巡展(一)
    【转贴】龙芯生态产品和解决方案巡展(第二篇)——笔记本电脑
    【转贴】龙芯生态产品和解决方案巡展(第三篇)——服务器
    【转贴】我们的龙芯3号---致龙芯15周年
    【转贴】GS464/GS464E
    【转贴】Windows virtio 驱动
    【转贴】Windows常用命令实例
  • 原文地址:https://www.cnblogs.com/tmdhhl/p/11015526.html
Copyright © 2011-2022 走看看