ajax图片上传功能
一、应用场景
当用户需要上传图片当做自己的头像时,预览的时候该图片需要在本地预览,不应该通过网络从服务器上取到之后预览
二、实现方法
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图片上传功能的更多相关文章
- 一个伪ajax图片上传代码的例子
		一个伪ajax图片上传实现代码. 复制代码代码如下: <?php if($_FILES){ ?> <script> window.parent.ajaxUploadPi ... 
- 两个由于php.ini配置错误导致的报错:ajax图片上传报错和exec报错
		遇到了两个由于php.ini配置错误导致的报错:ajax图片上传报错和exec报错 首先第一个: 在做一个用ajax图片上传的功能中,php报了这样一个错误:File upload error - u ... 
- H5 利用vue实现图片上传功能。
		H5的上传图片如何实现呢? 以下是我用vue实现的图片上传功能,仅供参考. <!DOCTYPE html> <html> <head> <meta chars ... 
- thinkphp达到UploadFile.class.php图片上传功能
		片上传在站点里是非经常常使用的功能.ThinkPHP里也有自带的图片上传类(UploadFile.class.php) 和图片模型类(Image.class.php).方便于我们去实现图片上传功能,以 ... 
- Spring+SpringMVC+MyBatis+easyUI整合优化篇(七)图片上传功能
		日常啰嗦 前一篇文章<Spring+SpringMVC+MyBatis+easyUI整合优化篇(六)easyUI与富文本编辑器UEditor整合>讲了富文本编辑器UEditor的整合与使用 ... 
- PHP语言学习之php做图片上传功能
		本文主要向大家介绍了PHP语言学习之php做图片上传功能,通过具体的内容向大家展示,希望对大家学习php语言有所帮助. 今天来做一个图片上传功能的插件,首先做一个html文件:text.php < ... 
- [Ting's笔记Day8]活用套件carrierwave gem:(3)Deploy图片上传功能到Heroku网站
		前情提要: 身为Ruby新手村民,创造稳定且持续的学习步调很重要,我用的方法就是一周在IT邦写三篇笔记,希望藉由把笔记和遇到的bug记录下来的过程,能帮助到未来想用Ruby on Rails架站的新手 ... 
- 给DEDECMS广告管理中增加图片上传功能
		dedecms的广告管理功能稍微有点次,本文就是在dedecms广告管理原有的基础上增加广告图片上传功能. 安装方法,对应自己的dedecms版本下载对应的编码然后解压把里面的文件放在后台目录覆盖即可 ... 
- ajax图片上传(asp.net +jquery+ashx)
		一.建立Default.aspx页面 <%@ Page Language="C#" AutoEventWireup="true" CodeFile=&q ... 
随机推荐
- Pmon (LS1B)start.s
			loongson ls1b FPGA验证 只有DDR flash UART pmon移植 和原版本相比,DDR controller和ls1b不一致. /* $Id: start.S,v 1.1.1. ... 
- C语言基础(13)-函数
			一. 函数的原型和调用 在使用函数前必须定义或者声明函数. double circle(double r); int main() { ); printf("length = %f\n&qu ... 
- ueditor 控制上传图片的显示尺寸
			使用UEditor的编辑框插入图片的时候,如果图片尺寸比较大,则图片会超出编辑器边框出现滚动条,特别不方便. 解决办法:在ueditor 的 themes 文件夹下有个iframe.css 文件,在该 ... 
- JS判断不同的浏览器,不同的浏览器版本
			JS判断不同的浏览器,不同的浏览器版本 
- 【转】Junit初体验
			Junit是用来做测试的,无论是单元测试,还是接口测试,都可以通过调用Junit来验证被调用方法的正确性.当然,要验证一个方法的正确性,还可以采用main方法,通过输出每一个result,人为比对其正 ... 
- 我的第四个程序 java实现加减乘除
			import java.util.Scanner; public class Test { public static void main(String [] args) { Scanner sc = ... 
- python 爬虫5 Beautiful Soup的用法
			1.创建 Beautiful Soup 对象 from bs4 import BeautifulSoup html = """ <html><head& ... 
- ZJU 17th 校赛
			第一次参加校赛,和小伙伴们拿了7个气球,还是挺开心的. 简单记个流水账吧. A:判断出INF的情况后 暴力模拟即可. INF的情况有x=1 || y=1 || (x==2 && y= ... 
- jquery call 函数改变this作用域
			call的用法在许多地方都看到过介绍.可以用来改变函数的作用域. 在页面中我们在一个input中添加click事件 <input id="Button1" type=&quo ... 
- dos下查找进程,如果找到echo find并结束该进程
			@echo offset var=chromedriver.exetasklist | findstr "%var%" && echo findtaskkill / ... 
