Flask接口签名sign原理与实例代码浅析
519
2023-02-21
使用WebUploader实现上传文件功能(一)
写在前面:
文件上传方式很多的,对于大文件的上传,在本次项目中也有涉及,主要是用了分片断点上传大文件。所以就去了解了一下WebUploader,先从简单的上传文件开始吧。
在代码中写注释,这样看的比较好点,那就直接上代码来看了解实现的过程吧。
前台jsp页面:
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%
String scheme = request.getScheme();
String serverName = request.getServerName();
String contextPath = request.getContextPath();
int port = request.getServerPort();
//网站的访问跟路径
String baseURL = scheme + "://" + serverName + ":" + port
+ contextPath;
request.setAttribute("baseURL", baseURL);
%>
<%--引入css样式--%>
<%--引入文件上传插件--%>
$(function(){
/*
对于uploader的创建,最好等dom元素也就是下面的div创建好之后再创建,因为里面有用到选择文件按钮,
不然会创建报错,这是很容易忽视的地方,故这里放到$(function(){}来进行创建*/
var uploader = WebUploader.create({
// swf文件路径
swf: '${baseURL}/webuploader0.1.5/Uploader.swf',
// 文件接收服务端。
server: '${baseURL}/uploadFile',
// [默认值:'file'] 设置文件上传域的name。
fileVal:'upload',
// 选择文件的按钮。可选。
// 内部根据当前运行是创建,可能是input元素,也可能是flash.
pick:
{
multiple: false,
id: '#filePicker'
},
// 上传并发数。允许同时最大上传进程数[默认值:3] 即上传文件数
threads: 1,
// 自动上传修改为手动上传
//auto: true,
//是否要分片处理大文件上传。
//chunked: true,
// 如果要分片,分多大一片? 默认大小为5M.
//chunkSize: 5 * 1024 * 1024,
// 不压缩image, 默认如果是jpeg,文件上传前会压缩一把再上传!
//resize: false
});
//当有文件添加进来的时候
uploader.on('fileQueued', function (file) {
//具体逻辑根据项目需求来写 这里只是简单的举个例子写下
$one = $("
$("#fileList").append($one);
});
// 文件上传过程中创建进度条实时显示。
uploader.on('uploadProgress', function (file, percentage) {
// 具体逻辑...
});
// 文件上传成功处理。
uploader.on('uploadSuccess', function (file, response) {
// 具体逻辑...
console.log('upload success...\n');
});
// 文件上传失败处理。
uploader.on('uploadError', function (file) {
// 具体逻辑...
});
// 上传传完毕,不管成功失败都会调用该事件,主要用于关闭进度条
uploader.on('uploadComplete', function (file) {
// 具体逻辑...
});
//点击上传按钮触发事件
$("#btnClick").click(function(){
uploader.upload();
});
});
<%--用来装 显示上传文件名称的div--%>
后台action:
/**
* Description:com.ims.action
* Author: Eleven
* Date: 2017/12/26 10:50
*/
@Controller("FileAction")
public class FileAction extends BaseAction{
//记得提供对应的get set方法
//上传文件对象(和表单type=file的name值一致,在jsp页面我们指定了fileVal:'upload',)
private File upload;
//文件名
private String uploadFileName;
//上传类型
private String uploadContentType;
public void uploadFile() throws Exception{
String str = "D:/upload33/"; //文件保存路径
System.out.println("文件路径===="+uploadFileName);
String realPath = str + uploadFileName;
File tmp =new File(realPath);
FileUtils.copyFile(upload, tmp);
System.out.println("上传文件"+uploadFileName+",大小:"+(upload.length()/1024/1024)+"M");
}
public File getUpload() {
return upload;
}
public void setUpload(File upload) {
this.upload = upload;
}
public String getUploadFileName() {
return uploadFileName;
}
public void setUploadFileName(String uploadFileName) {
this.uploadFileName = uploadFileName;
}
public String getUploadContentType() {
return uploadContentType;
}
public void setUploadContentType(String uploadContentType) {
this.uploadContentType = uploadContentType;
}
}
struts.xml文件的配置:
现在可以运行了,这个只是用WebUploader来实现的一个最基本的文件上传了。在jsp页面跟后台action中,都谈不上有什么逻辑,也不是很完整。因为项目不同,业务流程也不同,故可以先入门,后续根据自己的需求,进行添加的。
运行截图:
之后继续整理实现分片断点上传的文章。
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~