博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Django+layui 实现多文件上传,文件下载
阅读量:4079 次
发布时间:2019-05-25

本文共 4121 字,大约阅读时间需要 13 分钟。

Django+layui 实现多文件上传、文件下载

django教程:

                      

layui官网:       

layui样式调整:

 

 

多文件上传

效果:

主要代码(路由配置的就不展现了):前端

文件名 大小 状态 操作

后端:

def upload_resource_process(request):    user = request.session.get('user', None)    # 用户如果没有登录 跳转到登录界面    if not user:        return redirect('/user/login')    notice_five = models.Notice.objects.filter(Q(user=user) & Q(notice_status='未读')).count()    files_count = request.POST['files_count']    resource_type = request.POST['resource_type']    print('file_count---------->%s' % files_count)    now = datetime.datetime.now() # 得到当前时间    for i in range(int(files_count)):        resource_file = request.FILES['file' + str(i)]        # 保存至数据库中        resource = Resource(            user=user,            resource_type=resource_type,            resource_name=resource_file,            resource_file=resource_file,            resource_status='待审核',            submit_time=now,        )        resource.save()        print(resource_file)    print('*' * 50)    print("uploading--------------------------------------------")    return render(request, "resource_manage/upload_resource.html",                  {"notices": notice_five, "user": user})

文件下载

效果:

主要代码:前端

{% for resource in other_resource %}
{% endfor %}
文件名 文件类型 状态 上传时间 操作
{
{ resource.resource_name }}
{
{ resource.resource_type }}
{
{ resource.resource_status }}
{
{ resource.submit_time|date:"Y/n/j" }}    {
{ resource.submit_time|time|cut:"." }}

后端:

from django.http import HttpResponse,StreamingHttpResponse# 下载资源def download_resource(request):    # do something    the_file_name = request.GET['file_name']    # 显示在弹出对话框中的默认的下载文件名    print('the_file_name--------->' + the_file_name)    filename = 'media/resource/' + the_file_name  # 要下载的文件路径    print('filename--------------->' + filename)    response = StreamingHttpResponse(readFile(filename))    response['Content-Type'] = 'application/octet-stream'    response['Content-Disposition'] = 'attachment;filename="{0}"'.format(the_file_name)    return responsedef readFile(filename, chunk_size=512):    with open(filename, 'rb') as f:        while True:            c = f.read(chunk_size)            if c:                yield c            else:                break

 

转载地址:http://nhsni.baihongyu.com/

你可能感兴趣的文章
NUC作为开发机不足的地方
查看>>
TB上看到迷你主机似乎都是酷睿的CPU
查看>>
英特尔处理器全部系列
查看>>
AGV小车
查看>>
基于ADRC的单点自平衡立方体, 我搜了下有人写过了,看来我这种写论文的思路是对的,把一个实现过的项目用其他方法实现一遍。
查看>>
吃透tensorflow那本书里面的LSTM那个程序
查看>>
今天初步装好了我的猛禽360机架
查看>>
一稿多投被拒稿,确实是你的错
查看>>
碳机架是导电的
查看>>
PID在线调参这个方法不错!!!!!这可以让PID调参方便很多啊!!!!!!!而且可以很方便看到各个参数变化造成的影响!!!!!!!
查看>>
自平衡自行车本质就是一个惯性飞轮,本质就是一样的!!!
查看>>
自平衡立方体的动力学建模用到了拉格朗日方法,让我想起无人机的动力学建模也用到了拉格朗日方法。
查看>>
单点自平衡立方体相当于有几个自由度?自平衡自行车有几个自由度?独轮车有几个自由度?
查看>>
不要迷信STM32cube,有的例程都跑不起来。
查看>>
cubli我觉得不管是工作还是读研发文章还是读博,都用得到,我觉得可以弄弄。
查看>>
当初校赛智能车是这么实现用按键更改PID参数的
查看>>
当初校赛智能车的程序我还是有保存一些的。
查看>>
semaphore就是信号量的意思,以后看见信号量相关的函数不用怕,函数命名都是有规则的,查词典就可以了。
查看>>
一些信号量的函数里面其实就是调用的消息队列的函数实现的!怪不得华清的老师说先讲消息队列其他都弄懂了。
查看>>
ACfly工程Freertos层面上解析
查看>>