$.ajaxFileUpload({
url : "http://localhost:8081/ws2/servlet/fileUpload",
secureuri : false,// 一般设置为false
fileElementId : "fileUpload"+type,// 文件上传表单的id
dataType : 'json',// 返回值类型 一般设置为json
data: {'type': type},
success : function(data) // 服务器成功响应处理函数
error : function(data)// 服务器响应失败处理函数
console.log("服务器异常");
return false;
}当在打开的框中双击了一个文件后,就会触发onchange事件,把上传的实现代码写中其中即可。
JAVA后台接收(一些路径参数请自行加上):
request.setCharacterEncoding("utf-8");
Map result = new HashMap();
Part part = null; // servlet3.0的文件上传新办法
String jsonp = request.getParameter("jsonpcallback"),
type = request.getParameter("type");
try {
if (type != null) {
part = request.getPart("fileUpload"+type); // 参数为<input type='file' name='参数名' />
}else {
part = request.getPart("fileUpload");
// 获取文件名
String header = part.getHeader("content-disposition"),
fileName = getFileName(header),
path = filePath + File.separator + fileName;
File file = new File(filePath); // 建立目录
if (!file.exists()) {
file.mkdirs();
//part.write(path); weblogic下用part.write()无法写到指定的路径,它一定会搞到域里面。所以用流来写。从part中获取,不能从request获取
InputStream is = part.getInputStream();
FileOutputStream fos = new FileOutputStream(path);
byte[] b = new byte[1024];
int i = 0;
while ((i = is.read(b)) > -1) {
fos.write(b, 0, i);
想要一个选择了文件就自动上传的效果,但之前的 都是写在form表单中来提交的。借助jquery的ajaxfileupload.js,可以这样子弄:正面:function uploadFile(obj, type) { $.ajaxFileUpload({ url : "http://localhost:8081/ws2/servlet/fileUpload", secur
原本项目中使用elementUI,但是不太能满足需求;
选择
多个
文件
后,elementui upload的方法都会触发多次;比如使用auto-upload,network能看到发出了多个请求;或auto-upload="false",自行定义上传方法,on-change事件也会触发多次,所以决定使用原生;
如果有大佬使用elementUI做到,可以分享下或者贴下链接~~~
html 中
file
类型的
input
输入框,可以将本地的
文件
上传到网站的服务器,但它的上传需要 form 表单提交触发的。而今天我们要说一说,
file
类型的输入框在
选择
本地
文件
后,
自动
上传的方法。
input
file
选择
文件
后
自动
上传
可以使用js代码中的FormData对象,利用 change 触发上传,
FormData对象:此对象用以将数据编译成键值对,以便用XMLHttpReq...
Angular
file
-data-url 模块
一个超级简单的 AngularJS 指令,使用
input
[
type
=
file
] 元素将图像编码为数据 url。
它将 ngModel 控制器绑定到元素并
自动
将 ngModel
文件
内容(如果它是图像)设置为 base64 编码的数据 url。
通过凉亭:
bower install angular-
file
-data-url
浏览器要求
*需要具有
File
Reader功能的现代浏览器(即: 。它还可以调整大小和更改图像格式。上传前调整大小是使上传速度更快并节省用户的好方法带宽。
目前没有 IE <= 9 或 Opera mini 的后备方案。 如果您想提供帮助,请随时发送 PR。
模块名称是
file
-data-url ,因此您必须在设置应用程序时明确要求它。 示例如下:
angular . module (
input
type
="
file
"
上传文件
,显示上传图片,并替换上传按钮的位置
限制上传格式可以用accept=" ",比如accept=".doc,.docx" (限制
上传文件
为doc/docx)其他的都不可以
<!DOC
TYPE
html>
<html lang="en">
<meta charset="UTF-8"&...
还有一种方式就是直接使用
input
组件,此组件当
type
="
file
"时,就是一个
上传文件
或者图片的控件了。
具体使用方法如下:
1.触发
选择
文件
的html部分
整个页面都是用的elementUi的框架,因此部分组件是用的elementUI中的组件形式,例如下面的按钮组件
<el-button size="mini"
type
="succes
$("#
file
1").change(function(e){
var
file
c = $("#
file
1").get(0).
file
s[0];
if(
file
c){
//
文件
已经
选择
好 下面可以写自己的上传代码了
一、-
input
type
=
file
与
文件
上传
本文所说的
input
type
=
file
指的是
type
类型是
file
的
input
元素,最简HTML代码如下:
<
input
type
=
file
>
但是,为了习惯,我们多写成:
<
input
type
="
file
">
在HTML5出现之前(XHTML),我们的闭合规则则有些出入:
<
input
type
="
file
"...
$('body').on('change','#upLoad',function(){
var formData = new FormData();
var name = $($(this)).val();
var
file
s = $($(this))[0].
file
s[0];
formData.append("
file
",
file
s);
formData.append("name", name);
input
[
type
="
file
"]
上传文件
原理详解
最近又搞了一下
上传文件
功能,用别人的插件不大符合自己要求,还是用HTML5的
input
[
type
="
file
"]比较好控制,现在重新回顾一下使用
input
[
type
="
file
"]
上传文件
【1】修改
input
[
type
="
file
"]的样式
我个人感觉
input
type
=
file
的样式有点丑,还是修改修改
<a
type
=...
<meta charset="utf-8">
<title>
上传文件
</title>
<link rel="stylesheet" href="https://cdn.static
file
.org/layui/2.5.6/css/layui.min.css">
</head>
<div class="layui-container">
<div class="layui-row">
<div class="layui-col-md12">
<form class="layui-form" action="">
<div class="layui-form-item">
<label class="layui-form-label">
上传文件
</label>
<div class="layui-
input
-block">
<button
type
="button" class="layui-btn" id="test1">
<i class="layui-icon"></i>
上传文件
</button>
</form>
<script src="https://cdn.static
file
.org/layui/2.5.6/layui.min.js"></script>
<script>
layui.use(['upload', 'element'], function(){
var upload = layui.upload;
var element = layui.element;
//执行实例
var uploadInst = upload.render({
elem: '#test1', //绑定元素
url: '/upload/', //上传接口
done: function(res){
//上传完毕回调
error: function(){
//请求异常回调
</script>
</body>
</html>
在这个示例代码中,我们使用了Layui的上传组件,使用`upload.render`方法来初始化上传组件,其中:
- `elem`参数指定绑定
上传文件
的元素,这里我们使用了一个按钮元素。
- `url`参数指定
上传文件
的接口地址。
- `done`和`error`参数分别指定上传成功和上传失败后的回调函数。
注意,在使用Layui的上传组件时,需要同时引入Layui的`upload`和`element`模块。
当用户点击
上传文件
按钮后,上传组件会
自动
弹出
文件
选择
框,用户
选择
好要上传的
文件
后,上传组件会
自动
将
文件
上传到指定的接口地址,上传完成后会调用`done`回调函数。
你需要将示例代码中的上传接口地址替换为你自己的接口地址,才能使上传功能正常工作。