后台

import json
from django.shortcuts import render,HttpResponse,HttpResponseRedirect
import os
import json
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) def upload(request): if request.method == 'GET':
return render(request, 'form.html')
else:
file_name = request.POST.get('user')
pwd = request.POST.get('pwd')
file_obj = request.FILES.get('file') f = open(os.path.join(BASE_DIR, 'static','images',file_name+'.png'), 'wb')
# print(file_obj, type(file_obj)) for chunk in file_obj.chunks():
f.write(chunk)
f.close() msg = {
'status':True,
'msg':'上传成功',
'fileName':file_name,
'pwd':pwd
}
return HttpResponse(json.dumps(msg)) def morefiles(request):
if request.method == 'GET':
return render(request, 'morefile.html')
else:
file_name = request.POST.get('userName')
pwd = request.POST.get('password')
#获取单个文件
# file_obj = request.FILES.get('files')
print(file_name,pwd)
#获取多个文件对象
files = request.FILES.getlist('files')
print(files)
for f in files: destination = open(os.path.join(BASE_DIR, 'static','images',f.name),'wb+')
for chunk in f.chunks():
destination.write(chunk)
destination.close() msg = {
'status':200,
'msg':'上传成功',
# 'fileName':file_name,
# 'pwd':pwd
}
return HttpResponse(json.dumps(msg))

 前端

<html>
<head>
<title>login test</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="ajax方式">
<!-- <script src="http://apps.bdimg.com/libs/jquery/2.1.4/jquery.min.js"></script>-->
<script src="https://ajax.aspnetcdn.com/ajax/jquery/jquery-1.8.3.min.js"></script>
<script type="text/javascript">
$(function () {
let fileList = [];
let files = $("#files");
files.on("change", function (event) {
for (var i = 0; i < files[0].files.length; i++) {
fileList.push(files[0].files[i]);
}
console.log(fileList)
}); $("#login").click(function () {
let formData = new FormData();
fileList.forEach(function (file,index) {
formData.append('files', file, file.name);
})
formData.append("userName",$("#userName").val())
formData.append("password",$("#pwd").val()) $.ajax({
//几个参数需要注意一下
type: "POST",//方法类型
dataType: "json",//预期服务器返回的数据类型
url: "/morefiles/" ,//url
data: formData,
contentType:false,
processData:false,
success: function (result) {
console.log(result);//打印服务端返回的数据(调试用)
if (result.resultCode == 200) {
alert("SUCCESS");
}
;
},
error : function() {
alert("异常!");
}
});
})
}) </script>
</head>
<body>
<div id="form-div">
<form id="form1" onsubmit="return false" action="/" method="post" enctype="multipart/form-data">
<p>用户名:<input id="userName" name="userName" type="text" id="txtUserName" tabindex="1" size="15" value=""/></p>
<p>密 码:<input id="pwd" name="password" type="password" id="TextBox2" tabindex="2" size="16" value=""/></p>
<p>附件: <input id="files" type="file" name="files" multiple="multiple"></p>
<p><input id="login" type="button" value="登录" > <input type="reset" value="重置"></p>
</form>
</div>
</body>
</html>

  

python 上传多文件的更多相关文章

  1. windows上python上传下载文件到linux服务器指定路径【转】

    从windows上传文件到linux,目录下的文件夹自动创建 #!/usr/bin/env python # coding: utf-8 import paramiko import datetime ...

  2. Selenium+python上传本地文件或者图片

    基于input标签的,有属性type = file: 首先定位到点击上传的元素(input)然后直接使用send_keys()将文件在本地的路径传进去 代码如下(例子来源于本页面上传图片和文件): f ...

  3. python 上传下载文件

    server.py #!/usr/bin/env python # -*- coding:utf- -*- import SocketServer import os class MySocketSe ...

  4. autoIT 自动化上传/下载文件图文详解【python selenium】

    情景: 在用selenium进行web页面自动化时,时不时会遇到上传附件的情况,常见的情况就是一个上传按钮,点击后弹出windows窗口,选择文件后上传,如下图1所示 图1 这种情况超出了seleni ...

  5. python接收html页面上传的文件

    使用的 flask, 没有安装的先安装 pip install flask 示例代码:示例没有自动创建静态文件夹,需要自己在同级 创建一个名为 static 的文件夹来存放上传的文件 示例展示为图片 ...

  6. python实现socket上传下载文件-进度条显示

    在python的socket编程中,可以实现上传下载文件,并且在下载的时候,显示进度条,具体的流程如下图所示: 1. 服务器端代码如下: [root@python 519]# cat server.p ...

  7. python 使用paramiko模块上传本地文件到ssh

    我们要了解几个函数: paramiko.Tranport(("目标ip,端口"))#这是上传目标的IP和端口 paramiko.SFTPClient.from_tranport() ...

  8. 初级版python登录验证,上传下载文件加MD5文件校验

    服务器端程序 import socket import json import struct import hashlib import os def md5_code(usr, pwd): ret ...

  9. 上传本地文件到github仓库基本操作

    上传文件到github时老师忘记指令,或者总是出一些错,每次都要百度浪费时间,因此将常用操作指令归纳卸载这里,以后再也不要担心百度找帖子了... 第一步:新建仓库 新建仓库步骤省略,最后我们得到一个仓 ...

随机推荐

  1. 小结Fragment与FragmentPagerAdapter的生命周期及其关系

    本博客部分内容是来自http://blog.csdn.net/dreamzml/article/details/9951577 FragmentPagerAdapter FragmentPagerAd ...

  2. lua 元表Metatable (六)

    元表理解起来比较抽象,但这是lua设置的一种数据结构而已, 假设有table_A.table_B 这2个table,如果table_A要操作table_B,显然是不可能的 因为者都之间是没有关系的,如 ...

  3. FastJson 介绍

    Json详解 Json是一种轻量级的数据交换格式,采用一种“键:值”对的文本格式来存储和表示数据,在系统交换数据过程中常常被使用,是一种理想的数据交换语言.在使用 Java 做 Web 开发时,不可避 ...

  4. 盒模型中padding、border、margin的区别

    在CSS中,规定了一种基本设计模型——盒模型(也叫框模型),如图所示: 其中包含了四部分内容:element/元素(即图中文字).padding/内边框(图中两个红色边框之间白色部分).border/ ...

  5. Sumitomo Mitsui Trust Bank Programming Contest 2019 Task F. Interval Running

    Link. There is a nice approach to this problem that involves some physical insight. In the following ...

  6. k8s-helm安装

      kubernetes 1.15安装部署helm插件 简单介绍: Helm其实就是一个基于Kubernetes的程序包(资源包)管理器,它将一个应用的相关资源组织成为Charts,并通过Charts ...

  7. Django(一)安装启动

    Django下载/启动 1.下载安装 pip install django 或者 压缩文件下载地址:https://github.com/django/django/releases python s ...

  8. 针对Web的信息搜集

    信息收集(Information Gathering),信息收集是指通过各种方式获取所需要的信息,在整个渗透测试环节中,信息搜集是整个渗透过程中最为重要的一环,信息搜集可占据整个渗透测试80%左右的工 ...

  9. ASP.NET Core中间件实现分布式 Session(转载)

    ASP.NET Core中间件实现分布式 Session 1. ASP.NET Core中间件详解 1.1. 中间件原理 1.1.1. 什么是中间件 1.1.2. 中间件执行过程 1.1.3. 中间件 ...

  10. Angular 变更检测

    angular 的钩子函数有 content 和 view , Docheck 子控件中有属性变化的时候,父组件的 Docheck  content   view  这3个会依次执行,即使这个属性不在 ...