web上传文件——python

上传文件

a. Form表单上传,页面刷新(基本不用这种方式)

b. Ajax方式:

            $(function () {
                $(‘#btn1‘).click(function () {
                    var fm = new FormData();
                    fm.append(‘fffff‘, document.getElementById(‘ggggg‘).files[0]);
                    fm.append(‘usernmae‘,‘root‘);

                    $.ajax({
                        url: "/ajax-upload/",
                        type: ‘POST‘,
                        data: fm,
                        processData: false,  // tell jQuery not to process the data
                        contentType: false,  // tell jQuery not to set contentType
                        success:function (arg) {
                            console.log(arg);
                        }
                    })
                })
            })

目前兼容游览器不够完善

c. "伪"Ajax操作 ,目前最主流

1. iframe + Form表单
2. iframe onload
3. $(‘#ifr‘).contents().
4. 上传按钮透明度

<form id="id_publish_form" action="/publish/" method="POST"
      enctype="multipart/form-data" target="ifr">
    {% csrf_token %}
    {{ publish_form.title }}
    <span class="label label-warning" id="id_alert_titile"></span><br>
    {{ publish_form.summary }}
    <span class="label label-warning" id="id_alert_summary"></span><br>
    <input type="file" class="form-control" name="picture_file"
           id="id_picture_file">
    <span class="label label-warning" id="id_alert_file"></span><br>
    {{ publish_form.nt_id }}
    <span class="label label-warning" id="id_alert_nt_id"></span><br>
</form>
{#onload 事件会在页面或图像加载完成后立即发生#}
<iframe id="ifr" name="ifr" onload="successBack();"
        style="display: none"></iframe>

js部分:

//onload 执行的回调函数
function successBack() {
    var v = $(‘#ifr‘).contents().find(‘body‘).html();
    var obj = JSON.parse(v);
    if (obj.status) {
        location.href = ‘/‘;
    } else {
        if (obj.error) {
            $(‘#id_alert_file‘).text(obj.error);
        } else {
            $(‘#id_alert_titile‘).text(obj.data.title);
            $(‘#id_alert_summary‘).text(obj.data.summary);
            $(‘#id_alert_nt_id‘).text(obj.data.nt_id);
        }
    }
}

  

预览图片:

  如果需要预览图片文件时,后端返回文件路径,js生成一个<img>

时间: 2024-11-05 22:55:53

web上传文件——python的相关文章

Web上传文件的原理及实现

现在有很多Web程序都有上传功能,实现上传功能的组件或框架也很多,如基于java的Commons FileUpload.还有Struts1.x和Struts2中带的上传文件功能(实际上,Struts2在底层也使用了Commons FileUpload). 虽然现在有很多上传组件可以利用,但是了解Web上传文件的原理,对于处理突然出现的问题会有很大的帮助,下面就来讲一下通过浏览器上传文件的基本原理.在了解了原理之后,就可以非常容易地自制满足自身需要的上传组件了. 众所周知,在客户端代码中需要使用<

[转]文件上传原理:Web上传文件的原理及实现

现在有很多Web程序都有上传功能,实现上传功能的组件或框架也很多,如基于java的CommonsFileUpload.还有Struts1.x和Struts2中带的上传文件功能(实际上,Struts2在底层也使用了CommonsFileUpload).在asp.net中也有相应的上传文件的控件. 虽然现在有很多上传组件可以利用,但是了解Web上传文件的原理,对于处理突然出现的问题会有很大的帮助,下面就来讲一下通过浏览器上传文件的基本原理.在了解了原理之后,就可以非常容易地自制满足自身需要的上传组件

前端之web上传文件的方式

前端之web上传文件的方式 本节内容 web上传文件方式介绍 form上传文件 原生js实现ajax上传文件 jquery实现ajax上传文件 form+iframe构造请求上传文件 1. web上传文件方式介绍 在web浏览器上传文件一般有以下几种方式: form表单上传文件 原生js实现ajax上传文件 jquery实现ajax上传文件 form+iframe上传文件 其中form提交数据之后会整个刷新页面:js通过ajax上传文件虽然不会刷新整个页面,但是他们都是通过使用formdata对

.NET Core 2.1 Web 上传文件 关于System.IO.DirectoryNotFoundException

在ASP.NET Web开发练习中,想要完成上传文件的功能: 代码为: View: 1<form method="post" asp-controller="Register" asp-action="SetIcon" enctype="multipart/form-data"> 2 <input name="file" type="file" accept="

Python模拟HTTP Post上传文件

使用urllib2模块构造http post数据结构,提交有文件的表单(multipart/form-data),本示例提交的post表单带有两个参数及一张图片,代码如下: #buld post body data boundary = '----------%s' % hex(int(time.time() * 1000)) data = [] data.append('--%s' % boundary) data.append('Content-Disposition: form-data;

数据采集之Web端上传文件到Hadoop HDFS

前言 最近在公司接到一个任务,是关于数据采集方面的. 需求主要有3个: 通过web端上传文件到HDFS; 通过日志采集的方式导入到HDFS; 将数据库DB的表数据导入到HDFS. 正好最近都有在这方面做知识储备.正所谓养兵千日,用兵一时啊.学习到的东西只有应用到真实的环境中才有意义不是么. 环境 这里只做模拟环境,而不是真实的线上环境,所以也很简单,如果要使用的话还需要优化优化. OS Debian 8.7 Hadoop 2.6.5 SpringBoot 1.5.1.RELEASE 说明一下,这

python requests上传文件 tornado 接收文件

requests 上传文件 import requests def images(): url = 'http://127.0.0.1:8889/upload/image' files = {'file': open('desktop.png', 'rb')} multiple_files = [ ('file', ('11.png', open('11.png', 'rb'), 'image/png')), ('file', ('desktop.png', open('desktop.png'

20151227:web:上传文件

aspx代码: <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default2.aspx.cs" Inherits="Default2" %> <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head runat="s

SFTP基于Key多进程批量并发上传文件实现案例(python)

最近在研究Paramiko,Paramiko可以非常方便的实现基于SSH协议的远程连接,可以基于 口令,也可以无口令RSA非对称密钥,亦可以实现SFTP上传下载操作,安全高效,再结合多 进程或者是多线程就可以实现并行处理,写了一个简单的SFTP基于Key多进程批量并发上传 文件的实现案例,供以后参考. 安装加密模块和Paramiko模块 下载:pycrypto-2.6.1.tar.gz paramiko-1.10.1.tar.gz 安装: tar -zxf pycrypto-2.6.1.tar.