ajax异步上传文件FormDate方式,html支持才可使用
今天需要做一个头像的预览功能,所以我想到了异步上传文件。
总结几点:
异步上传难点:
文件二进制流如何获取
是否需要设置表单的头,就是content-Type那里。异步,所以无所谓了吧。
其他就差不多了。
直接上demo:
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>"> <title>My JSP 'index.jsp' starting page</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->
<script type="text/javascript" src="${pageContext.request.contextPath }/js/jquery1.8.3.js"></script>
<script type="text/javascript" src="${pageContext.request.contextPath }/js/Utils.js"></script> <script type="text/javascript"> $(function(){
$("#upload").on('click', function() {
$('#fileToUpload').click();
}); //选择文件之后执行上传
$('#fileToUpload').change(function() {
var formData = new FormData();//生成空的form对象
formData.append("myphoto",$("#fileToUpload")[].files[]);//把该文件对象放入formData
$.ajax({
url:g_basePath+"/FileUploadServlet",
data:formData,
type:"POST",
processData:false, //这个和jquery中formData有关,去除会报错。具体没研究
contentType:false, //这个和头contentType有关,去除后在后台无法获得上传的二进制流
success: function (data) {
//把图片替换
$("#upload").attr("src", data);
}
});
});
}); </script> </head> <body>
<div>
<div style="width:180px;height:180px;border:solid 1px;">
<img id="upload" alt="" style="width: 180px; height: 180px"
src="${pageContext.request.contextPath }/images/defaultphoto.jpg">
<!-- 隐藏file标签 -->
<input id="fileToUpload" style="display: none" type="file" name="myphoto">
</div>
</div>
</body>
</html>
上传时文件使用的是FormData对象,有时间去研究。有人看了我的之后研究了希望回馈一份更好的异步文件上传给我哦,原生js的最好也来一份。哈哈,反哺。
ajax异步上传文件FormDate方式,html支持才可使用的更多相关文章
- ajax异步上传文件和表单同步上传文件 的区别
1. 用表单上传文件(以照片为例)-同步上传 html部分代码:这里请求地址index.php <!DOCTYPE html> <html lang="en"&g ...
- 基于Flask开发网站 -- 前端Ajax异步上传文件到后台
大家好,我是辰哥~ 辰哥最近利用空闲时间在写一个在线可视化平台,过程中也觉得一些技术还是比较有意思的,所以就以模块化的形式分享出来.如:从网页界面(前端)上传文件到服务器(后端). 放一下该模块的界面 ...
- Asp.Net Mvc异步上传文件的方式
今天试了下mvc自带的ajax,发现上传文件时后端action接收不到文件, Request.Files和HttpPostedFileBase都接收不到.....后来搜索了下才知道mvc自带的Ajax ...
- Spring使用ajax异步上传文件
单文件上传 <!-- 创建文件选择框 --> 文件上传 :<input type="file" id="file" name="fi ...
- 使用ajax异步上传文件或图片(配合php)
//html代码 <form enctype="multipart/form-data" id="upForm"> <input type=& ...
- Jquery_异步上传文件多种方式归纳
1.不用任何插件,利用iframe,将form的taget设为iframe的name,注意设为iframe的id是没用的,跟网上很多说的不太一致 iframe_upload.htm <!DOCT ...
- 使用Ajax异步上传文件
之前上传文件都是用表单form设置post请求和enctype类型: <form id="upload_form"action="" method=&qu ...
- Ajax 异步上传文件
需要引用js jquery.form 前端代码 <form action="/Save" id="mainForm" method="post& ...
- ajax异步上传文件之data参数----小哈学js
下载ajaxFileUpload.js(下载网址:http://fileuploadajax.codeplex.com/downloads/get/20976) 修改ajaxFileUpload.js ...
随机推荐
- nfs部署和优化 -2
客户端: cat /etc/passwd 显示用户 weifeng 500 服务端: vim /etc/exports /mnt 192.168.1.105(rw,sync,all_squash, ...
- Delphi列表控件TListView定位到某一行。
ListView1.Item[100].Focused = true; //定位到索引为100的行ListView1.Item[100].Selected = true; ListView1.Item ...
- 【SQLServer2008】之改变主键当为null时也不会报错,可以入数据库。
在SqlServer红框中设置主键,右键会有添加主键选项,并且设置不能为null. 当我们插入主键数据如果为null时,会插不进去,这时候我们需要修改一下,如下图: “标识规范”中选择“是”,就可以了 ...
- mapreduce代码实现入门
mapreduce代码主要包括三个类,map类.reduce类以及测试类! 以wordcount为例, map类为: static class WordMapper extends Mapper< ...
- Sqlite 设置外键级联更新
Sqlite 设置外键级联更新 选择好外键表和列以后,勾选更新事件,更新方式设置为CASCADE,即可在外键更新时自动更新
- 【BZOJ4453】cys就是要拿英魂! 后缀数组+单调栈+set
[BZOJ4453]cys就是要拿英魂! Description pps又开始dota视频直播了!一群每天被pps虐的蒟蒻决定学习pps的操作技术,他们把pps在这局放的技能记录了下来,每个技能用一个 ...
- 九度OJ 1035:找出直系亲属 (二叉树、递归)
时间限制:1 秒 内存限制:32 兆 特殊判题:否 提交:2380 解决:934 题目描述: 如果A,B是C的父母亲,则A,B是C的parent,C是A,B的child,如果A,B是C的(外) ...
- git修改commit说明
当发现说明写错了时,执行git commit --amend,然后修改说明即可.
- Jeff Dean 排序时间计算
Quicksort (sometimes called partition-exchange sort) https://en.m.wikipedia.org/wiki/Quicksort
- [TroubleShooting]Neither the partner nor the witness server instance for database is availble
Problem: You are trying to setup a mirroring on a Database called xxxDB(SQL server 2012). You are ge ...