web应用 上传文件

Posted zc3614

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了web应用 上传文件相关的知识,希望对你有一定的参考价值。

用自定义form表单提交

html文件

index.html

<form action="/update_file/" enctype="multipart/form-data" method="post">  #enctype="multipart/form-data" 是编码类型,指表单数据有多部分构成,既有文本数据,又有文件等二进制数据
    {% csrf_token %}
    <input type="file" name="pic">
    <input type="submit" value="上传">
</form>

视图函数

def update_file(request):
  pic=request.FILES[pic] #或request.FILES.get(‘pic‘) 拿到文件pic对象
  f = open(pic.name,wb) #pic.name 为文件名(可自行拼接指定路径+文件名) pic.size 为文件大小
  for i in pic.chunks(): #chunks()是一个生成器对象,遍历可得到文件内容,节约内存,分块读取写入
    f.write(i)
  f.close()
  return HttpResponse(ok)

用django自带form组件提交

先写一个Form类

views.py
class RegForm(forms.Form):
    pic = forms.FileField()      # 会给name前边生成一个lable标签

再写视图函数

views.py
def
upload(request): form_obj = RegForm() # 实例化一个对象 if request.method == "POST": # 实例化form对象的时候,把post提交过来的数据直接传进去 form_obj = RegForm(request.POST) # 调用form_obj校验数据的方法 if form_obj.is_valid(): return HttpResponse("成功") return render(request, "upload.html", locals())

在html中生成标签

<form action="/update_file/" enctype="multipart/form-data" method="post">
    {% csrf_token %} 
    {{ form_obj.pic }} #
    <input type="submit" value="上传">
</form>

 

以上是关于web应用 上传文件的主要内容,如果未能解决你的问题,请参考以下文章

文件上传漏洞

通过带有PHP代码的Web服务器将应用程序上的本地文件上传到FTP服务器

springboot---web 应用开发-文件上传

在 asp.net 框架 Web 应用程序中上传图像文件

通过我的 Azure Web 应用上传文件时超时

Alamofire 文件上传出现错误“JSON 文本未以数组或对象开头,并且允许未设置片段的选项”