zoukankan      html  css  js  c++  java
  • python 文件上传本地服务器

    1:python之上传文件

    1.1.url代码

     1 """untitled1222 URL Configuration
     2 
     3 The `urlpatterns` list routes URLs to views. For more information please see:
     4     https://docs.djangoproject.com/en/2.1/topics/http/urls/
     5 Examples:
     6 Function views
     7     1. Add an import:  from my_app import views
     8     2. Add a URL to urlpatterns:  path('', views.home, name='home')
     9 Class-based views
    10     1. Add an import:  from other_app.views import Home
    11     2. Add a URL to urlpatterns:  path('', Home.as_view(), name='home')
    12 Including another URLconf
    13     1. Import the include() function: from django.urls import include, path
    14     2. Add a URL to urlpatterns:  path('blog/', include('blog.urls'))
    15 """
    16 from django.contrib import admin
    17 from django.urls import path
    18 from app01 import views
    19 urlpatterns = [
    20     path('admin/', admin.site.urls),
    21     path('upload/',views.upload),
    22 ]
    View Code

    1.2.views代码

     1 from django.shortcuts import render
     2 from django.shortcuts import HttpResponse
     3 
     4 # Create your views here.
     5 def upload(request):
     6     if request.method=='GET':
     7         return render(request,'upload.html')
     8     else:
     9         user=request.POST.get('user')
    10         print(user)
    11         #img是一个对象,包含文件名,文件大小、内容....
    12         img=request.FILES.get('img')
    13         print(img)
    14         print(img.name)
    15         print(img.size)
    16 
    17         #上传到本地服务器
    18         f=open(img.name,'wb')
    19         for line in img.chunks():
    20             f.write(line)
    21         f.close()
    22 
    23         return HttpResponse('OK')
    View Code

    1.3.templates中upload.html

     1 <!DOCTYPE html>
     2 <html lang="en">
     3 <head>
     4     <meta charset="UTF-8">
     5     <title>Title</title>
     6 </head>
     7 <body>
     8 <form action="/upload/" method="post" enctype="multipart/form-data">
     9     <input type="text" name="user">
    10     <input type="file" name="img">
    11     <input type="submit" value="提交">
    12 </form>
    13 </body>
    14 </html>
    View Code

    1.4.效果显示

    2.上传文件按钮优化

    2.1按钮优化只需在原有upload.html文件中进行相关样式设置即可,重点设置透明度:opacity:0

     1 <!DOCTYPE html>
     2 <html lang="en">
     3 <head>
     4     <meta charset="UTF-8">
     5     <title>Title</title>
     6 </head>
     7 <body>
     8 <form action="/upload/" method="post" enctype="multipart/form-data">
     9     <input type="text" name="user">
    10     <div style="position: relative;">
    11         <a>上传</a>
    12     <input type="file" name="img" style="opacity: 0.2;position:absolute; top:0;left: 0;">
    13     </div>
    14     <input type="submit" value="提交">
    15 </form>
    16 <script src="/static/jquery-3.3.1.min.js"></script>
    17 </body>
    18 </html>
    View Code

    2.2.优化后的效果显示:

    3.python之Form组件文件上传(与上述自定义上传文件的区别在:form上传文件多了验证功能)

     1 from django.shortcuts import render
     2 from django.shortcuts import HttpResponse
     3 
     4 
     5 # Create your views here.
     6 from django import forms
     7 from django.forms import fields
     8 #from组件形式的文件上传
     9 class UploadImg(forms.Form):
    10     user=fields.CharField()
    11     img=fields.FileField()
    12     
    13     
    14 def upload(request):
    15     if request.method=='GET':
    16         return render(request,'upload.html')
    17     else:
    18         OBJ=UploadImg(request.POST,request.FILES)
    19         if OBJ.is_valid():
    20             user=OBJ.cleaned_data['user']
    21             img=OBJ.cleaned_data['img']
    22             f = open(img.name, 'wb')
    23             for line in img.chunks():
    24                 f.write(line)
    25             f.close()
    26         #自定义形式文件上传
    27         # def upload(request):
    28         #     if request.method == 'GET':
    29         #         return render(request, 'upload.html')
    30         #     else:
    31         #         user=request.POST.get('user')
    32         #         print(user)
    33         #         #img是一个对象,包含文件名,文件大小、内容....
    34         #         img=request.FILES.get('img')
    35         #         print(img)
    36         #         print(img.name)
    37         #         print(size)
    38         #         f = open(img.name, 'wb')
    39         #         for line in img.chunks():
    40         #             f.write(line)
    41         #         f.close()
    42         #         return HttpResponse('OK')
    43         return HttpResponse('OK')
    View Code
  • 相关阅读:
    HDU-1702-ACboy needs your help again!(Stack)
    HDU1276-士兵队列训练问题 (Queue)
    HDU1285-确定比赛名次(拓扑+优先队列)
    The Preliminary Contest for ICPC Asia Nanjing 2019
    拓扑排序板子 hihocoder-1174
    BZOJ1066 [SCOI2007]蜥蜴
    BZOJ3888 [Usaco2015 Jan]Stampede
    BZOJ1718 [Usaco2006 Jan] Redundant Paths 分离的路径
    BZOJ1112 [POI2008]砖块Klo
    BZOJ1031 [JSOI2007]字符加密Cipher
  • 原文地址:https://www.cnblogs.com/506941763lcj/p/10163400.html
Copyright © 2011-2022 走看看