python之form表单上传文件

文件上传
-----form表单上传文件

看下代码就完事了

def up_load(request):
    if request.method == "GET":
    获取数据库的数据
        imglist=models.Image.objects.all()
        return render(request, "upload.html",{"imageL":imglist})
    elif request.method == "POST":
        user = request.POST.get("user")
        haha = request.POST.get("ha")
        # 上传图片
        obj = request.FILES.get("ha")
        print(obj.name, obj.size)
        # f=open(obj.name,'wb')
        import os
        filepath = os.path.join("static","image", obj.name)#图片的路径
        # f=open(os.path.join("upload",obj.name),'wb')
        #将路径存入数据库
        models.Image.objects.create(path=filepath)
        f = open(filepath, 'wb')
        for chunk in obj.chunks():
            f.write(chunk)
        f.close()

        print(user, haha)
        return render(request, "upload.html")

html代码

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<form method="POST" action="/upload/" enctype="multipart/form-data">
    <input type="text" name="user"/>
    <input type="file" name="ha"/>
    <input type="submit" value="提交"/>
</form>
<div>
{#<img style="height: 200px;width: 200px; background: /static/image/1-1G1201AJ9.jpg" src=""/>#}
    {% for item in imageL %}
        <img style="height: 200px;width: 200px" src="/{{ item.path }}"/>
    {% endfor %}
</div>
</body>
</html>

--------Ajax上传文件

悄悄的上传

  • xmlHttpRequest
xml=new XMLHttpRequest();#定义一个对象
                 xml.open("post","/upload/",true)#以post方式传到url,true表示异步的。
                 xml.send("k1=v1;k2=v2")#字符串的形式发送
  •  jQuery  
 $.ajax({
                      url:
                      data:{'k1':'v1','k2':'v2'}
                })
             FormData对象                                                            可以承载字符串,也可以承载文件
                      dict=new FormData                                             #创建了一个dict对象
                      dict.append('k1','v1');                                          #生成键值对
                      dict.append('k2','v2');
                      dict.append('hahahh',文件对象);

--------基于form表单和iframe自己实现ajax请求

iframe实现局部刷新

  <input type="text" id="url"/>
           <input type="button" value="点我" οnclick="iframe_Change();"/>
           <iframe  id="ifr" src=""></iframe>
             
             
             function iframe_Change() {
                      var url=$('#url').val();
                      $('#ifr').attr('src',url);

    } 

 

转载于:https://www.cnblogs.com/ssxblog/p/10626723.html

在Web开发中,form表单文件上传功能允许用户选择本地文件并将其上传到服务器。实现这一功能通常涉及以下HTML和后端技术的配合: 1. HTML表单设置: - 使用`<form>`标签,并设置`enctype`属性为`multipart/form-data`。这是因为`multipart/form-data`能够处理文件数据这种二进制格式。 - 在`<form>`中加入`<input type="file">`标签,让用户可以选择文件。为了提高用户体验,可以设置`accept`属性来限制用户可以选择的文件类型。 - 提供一个提交按钮,用户点击后会触发表单的提交。 示例代码: ```html <form action="/upload" method="post" enctype="multipart/form-data"> <input type="file" name="file" accept=".jpg,.png,.gif" /> <input type="submit" value="上传文件" /> </form> ``` 2. 后端处理: - 服务器端接收文件数据时,需要根据设置的`enctype`来解析POST请求。 - 根据具体的编程语言和框架,后端可能需要使用特定的库或组件来处理文件上传。 - 在接收到文件数据后,后端通常会进行文件保存操作,并可能会执行一些额外的处理,比如验证文件类型、大小,以及为上传的文件生成安全的文件名等。 例如,在Python的Flask框架中,可以使用`request.files`来接收上传的文件: ```python from flask import request @app.route('/upload', methods=['POST']) def upload_file(): file = request.files['file'] if file: filename = secure_filename(file.filename) file.save(os.path.join('/path/to/the/uploads', filename)) return '文件上传成功' ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值