一、应用场景

  当用户需要上传图片当做自己的头像时,预览的时候该图片需要在本地预览,不应该通过网络从服务器上取到之后预览

二、实现方法

  1、方法1:

    

    注释:给上传文件的input标签绑定一个change事件,只要该事件一触发就会通过$(this)[0].files[0]的方法得到上传文件的详细信息,然后通过window.URL.createObjectURL(obj)的方法就能得到该文件的本地路径,然后就将换本地路径替换之前的网络路径。

  2、方式2:

    

    注释:两种方式都是通过本地取出文件路径显示出来,不同之处在于方式1先将文件读取到内存中然后读取其文件路径进行替换不会释放掉内存中的文件,而方式2将文件读取到内存中替换后会释放掉内存中的文件。

   3、方式3

    直接将文件上传到服务器,然后将服务器上的文件路径发送给客户端。

   4、由于浏览器的支持性可以通过判断来执行不同的代码

    

三、将图片上传到服务器端

  1、由于图片保存的是二进制不能直接通过ajax中的data传输出去,因为data只能传输字符串数据,所以可以通过formdata这个函数可以传输任意类型的数据

    

  2、客户端获取图片内容方法

    

    注释:图片是二进制的格式,必须通过files的方式将图片的内容取出来然后才能传递出去

  3、如果是formdata方式传递数据必须添加两个参数

    

    注释:参数1指不需要预处理也就是不需要进行编码,参数2指不需要制定类型。

四、服务器端设置静态文件存储位置(图片上传到服务器需要存储在哪里)

  1、在settings中添加media路径,并且取个别名

    

  2、然后在url上添加该条记录(首先需要引入serve模块--from django.views.static import serve)

    

  3、然后服务器就可以找个相应的图片路径

    

    注释:取avatar路径的时候后面需要跟个.url(i.blog.user.avatar.url )

  

  

ajax图片上传功能的更多相关文章

  1. 一个伪ajax图片上传代码的例子

    一个伪ajax图片上传实现代码. 复制代码代码如下: <?php  if($_FILES){  ?>  <script>  window.parent.ajaxUploadPi ...

  2. 两个由于php.ini配置错误导致的报错:ajax图片上传报错和exec报错

    遇到了两个由于php.ini配置错误导致的报错:ajax图片上传报错和exec报错 首先第一个: 在做一个用ajax图片上传的功能中,php报了这样一个错误:File upload error - u ...

  3. H5 利用vue实现图片上传功能。

    H5的上传图片如何实现呢? 以下是我用vue实现的图片上传功能,仅供参考. <!DOCTYPE html> <html> <head> <meta chars ...

  4. thinkphp达到UploadFile.class.php图片上传功能

    片上传在站点里是非经常常使用的功能.ThinkPHP里也有自带的图片上传类(UploadFile.class.php) 和图片模型类(Image.class.php).方便于我们去实现图片上传功能,以 ...

  5. Spring+SpringMVC+MyBatis+easyUI整合优化篇(七)图片上传功能

    日常啰嗦 前一篇文章<Spring+SpringMVC+MyBatis+easyUI整合优化篇(六)easyUI与富文本编辑器UEditor整合>讲了富文本编辑器UEditor的整合与使用 ...

  6. PHP语言学习之php做图片上传功能

    本文主要向大家介绍了PHP语言学习之php做图片上传功能,通过具体的内容向大家展示,希望对大家学习php语言有所帮助. 今天来做一个图片上传功能的插件,首先做一个html文件:text.php < ...

  7. [Ting's笔记Day8]活用套件carrierwave gem:(3)Deploy图片上传功能到Heroku网站

    前情提要: 身为Ruby新手村民,创造稳定且持续的学习步调很重要,我用的方法就是一周在IT邦写三篇笔记,希望藉由把笔记和遇到的bug记录下来的过程,能帮助到未来想用Ruby on Rails架站的新手 ...

  8. 给DEDECMS广告管理中增加图片上传功能

    dedecms的广告管理功能稍微有点次,本文就是在dedecms广告管理原有的基础上增加广告图片上传功能. 安装方法,对应自己的dedecms版本下载对应的编码然后解压把里面的文件放在后台目录覆盖即可 ...

  9. ajax图片上传(asp.net +jquery+ashx)

    一.建立Default.aspx页面 <%@ Page Language="C#" AutoEventWireup="true"  CodeFile=&q ...

随机推荐

  1. Python内置函数之exec()

    exec(object[,gobals[,locals]])这个函数和eval()有相同的作用,用来做运算的. 区别是,exec()可以直接将运算结果赋值给变量对象,而eval()只能运算不能赋值. ...

  2. FreeBSD中实现root的ssh

    在虚拟机中刚装好FreeBSD,结果不能以远程方式登录root,然后在如下链接中找到了解决方法: http://blog.chinaunix.net/uid-26719405-id-3822697.h ...

  3. Spark Core源代码分析: RDD基础

    RDD RDD初始參数:上下文和一组依赖 abstract class RDD[T: ClassTag]( @transient private var sc: SparkContext, @tran ...

  4. 服务器操作系统应该选择Debian/Ubuntu还是CentOS?

    任何 Linux 发行版本,在理论上都是一样的.只不过操作有的方便,有的麻烦!yum 是比 apt 弱(这就是企业维护和社区维护的区别,企业自己维护不需要这么多功能)但是任何能在 A 发行版本上实现的 ...

  5. 相对定位position: relative;

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  6. ProgressBar 进度条设置百分比显示

    rawable/progressbar <layer-list xmlns:android="http://schemas.android.com/apk/res/android&qu ...

  7. StringUtils 时间显示,判断手机号,电子邮件,是否为今日,是否空白串,字符串转整数,对象转整数 等

    package com.xiaoyun.org.util; import java.io.BufferedReader; import java.io.IOException; import java ...

  8. 40、DrawerLayout使用详情

    1.主内容视图一定要是DrawerLayout的第一个子视图 2.主内容视图宽度和高度匹配父视图,即“match_parent” 3.必须显示指定抽屉视图(如ListView)的 android:la ...

  9. hoj 2739 中国邮局问题

    /*若原图的基图不连通, 或者存在某个点的入度或出度为 0 则无解. 统计所有点的入度出度之差 Di, 对于 Di > 0 的点, 加边(s, i, Di, 0); 对于 Di < 0 的 ...

  10. hoj 2715 (费用流 拆点)

    http://acm.hit.edu.cn/hoj/problem/view?id=2715 将每个格子 i 拆成两个点 i’, i’’并加边(i’, i’’, 1, -Vi), (i’, i’’, ...