django实现目录上传(最简单的方法)

HTML代码:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
     <form enctype="multipart/form-data" action="/upload/" method="POST">
           {% csrf_token %}
           <input type="file" name="upload" id="file_input" multiple webkitdirectory="">
           <br/>
           <input type="submit" value="上传"/>
     </form>

</body>
</html>
url.py

urlpatterns = [
    url(r‘^upload/‘,upload)
]
views.py

# -*- coding: utf-8 -*-
from __future__ import unicode_literals

from django.shortcuts import render
from django.http import HttpResponse
from django.http import HttpResponseRedirect
import os
import sys
reload(sys)
sys.setdefaultencoding(‘utf8‘)

# Create your views here.

def upload(request):
    if request.method == ‘GET‘:
        return render(request, ‘index.html‘)
    elif request.method == ‘POST‘:
        dir = request.FILES
        dirlist = dir.getlist("upload", None)        #获取文件列表

        if not dirlist:
            return HttpResponse("没有上传内容")
        else:
            for file in dirlist:
                position = os.path.join(‘C:\\Users\\huyuan\\Desktop\\test\\upload‘,str(file))
                    # 获取上传文件的文件名,并将其存储到指定位置
                storage = open(position, ‘wb+‘)      # 打开存储文件
                for chunk in file.chunks():          # 分块写入文件
                    storage.write(chunk)
            storage.close()                  #写入完成后关闭文件
            return HttpResponse("上传成功")  # 返回客户端信息
    else:
            return HttpResponseRedirect("不支持的请求方法")

这种方式上传目录无法保持目录结构,只会把目录和其子目录的文件上传而不会上传目录

时间: 2024-10-28 11:35:47

django实现目录上传(最简单的方法)的相关文章

django实现分片上传文件

目标:利用django实现上传文件功能 1,先设置路由系统 urls.py from django.conf.urls import url,include from django.contrib import admin from app01 import views urlpatterns = [ url(r'^admin/', admin.site.urls), url(r'^upload/$', views.upload), ] 2,配置html模板文件(前端页面展示) template

python Django之文件上传

python Django之文件上传 使用Django框架进行文件上传共分为俩种方式 一.方式一 通过form表单进行文件上传 #=========================================FORM表单上传文件======================================== def f1(request): #定义f1上传函数 if request.method=='GET': #如果是以GET请求 return render(request,'f1.htm

ASP.NET 中对大文件上传的简单处理

ASP.NET 中对大文件上传的简单处理 在 ASP.NET 开发的过程中,文件上传往往使用自带的 FileUpload 控件,可是用过的人都知道,这个控件的局限性十分大,最大的问题就在于上传大文件时让开发者尤为的头疼,而且,上传时无法方便的做到多线程的操控和上传进度的显示.笔者在此给大家推荐一款简单易用的上传组件,从而快速便捷得解决了 ASP.NET 中的大文件上传问题. 首先,我们需要下载这个名为 RanUpLoad 的组件,可以去我的百度云盘下载: http://pan.baidu.com

ASP.NET 大文件上传的简单处理

在 ASP.NET 开发的过程中,文件上传往往使用自带的 FileUpload 控件,可是用过的人都知道,这个控件的局限性十分大,最大的问题就在于上传大文件时让开发者尤为的头疼,而且,上传时无法方便的做到多线程的操控和上传进度的显示.在此给大家推荐一款简单易用的上传组件,从而快速便捷得解决了 ASP.NET 中的大文件上传问题. 首先,我们需要这个名为 RanUpLoad 的组件(下面例子中附带),这两个 dll 文件添加到项目的引用中区,xml 文件也要复制在项目中的 bin 文件夹下,也就是

上传下载简单版

server------------ #!/usr/bin/env python # encoding: utf-8  # Date: 2018/6/7 import socketimport osimport jsonimport struct shar_dir = r'E:\python\PycharmProjects\python.base.demo\model3\socket1\上传下载\简单版本\server\share' phone = socket.socket(socket.AF

文件上传的几种方法

一.加enctype="multipart/form-data" <!DOCTYPE html> <html> <head> <title>test</title> </head> <body> <form action="/test/" method="post" enctype="multipart/form-data"> &l

PHP上传压缩包并自解压方法

1.PHP上传压缩包并解压的大概流程: 普通上传功能->上传到服务器->加载系统组件->找到上传的文件并执行解压命令->成功解压到目录 2.php执行系统命令的几类函数: (1)system() 输出并返回最后一行shell结果. (2)exec() 不输出结果,返回最后一行shell结果 (3)passthru() 只调用命令,把运行结果原样地输出 (4)new com()  系统预定义com类,根据需要任意选择内置方法(操作方式再麻烦,但也是功能最全的) 3.Com组件的用法:

小程序---&gt;小程序图片上传阿里OSS使用方法

小程序图片上传阿里OSS使用方法 首先看下参考文档 ( http://blog.csdn.net/qq_38125123/article/details/73870667) 这里只将一些运用过程中遇到的问题及解决办法: 1.cryptojs,sha1js,hmacjs,base64js在哪下载及使用方法: 文件可以在阿里oss实例文档中找到. 在运用过程中如果是通过require引入的,会找不到引入的方法,原因是这些js文档没有模块导出,可以在原文件里找到其顶部全局对象,exports出来即可.

运用php上传大文件配置方法

网站建设:运用php上传大文件配置方法如下: 翻开php.ini, 1.第一找出 file uploads区域,有影响文件上传的以下几个参数: file_uploads = on ;能否准许经过http上传文件的开关.默许为on即是开 upload_tmp_dir ;文件上传至服务器上存储临时文件的地方,假设没指定就会用系统默许的临时文件夹 upload_max_filesize = 8m ;望文生意,即准许上传文件大小的最大值.默许为2m 2.在resource limits区域,还有参数 ;