项目框架采用spring+hibernate+springMVC如果上传文件不想使用flash那么你可以采用HTML5;截图前段模块是bootstarp框架;不废话直接来代码;spring-mvc配置文件;效果截图如下:

详细实现如下:

1、mvc-config.xml

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xmlns:context="http://www.springframework.org/schema/context"

xmlns:mvc="http://www.springframework.org/schema/mvc"

xsi:schemaLocation="http://www.springframework.org/schema/beans

http://www.springframework.org/schema/beans/spring-beans.xsd

http://www.springframework.org/schema/context

http://www.springframework.org/schema/context/spring-context-3.2.xsd

http://www.springframework.org/schema/mvc

http://www.springframework.org/schema/mvc/spring-mvc-3.2.xsd">

class="org.springframework.web.servlet.view.InternalResourceViewResolver">

class="org.springframework.http.converter.ByteArrayHttpMessageConverter" />

class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter">

text/plain;charset=UTF-8

2、实体工具类:Progress.Java

package com.yunfang.banks.listener;

public class Progress {

private long pBytesRead;

private long pContentLength;

private long pItems;

public long getpBytesRead() {

return pBytesRead;

}

public void setpBytesRead(long pBytesRead) {

this.pBytesRead = pBytesRead;

}

public long getpContentLength() {

return pContentLength;

}

public void setpContentLength(long pContentLength) {

this.pContentLength = pContentLength;

}

public long getpItems() {

return pItems;

}

public void setpItems(long pItems) {

this.pItems = pItems;

}

@Override

public String toString() {

return "Progress [pBytesRead=" + pBytesRead + ", pContentLength="

+ pContentLength + ", pItems=" + pItems + "]";

}

}

3、文件上传进度监听类:FileUploadProgressListener.java

package com.yunfang.banks.listener;

import javax.servlet.http.HttpSession;

import org.apache.commons.fileupload.ProgressListener;

import org.springframework.stereotype.Component;

@Component

public class FileUploadProgressListener implements ProgressListener {

private HttpSession session;

public void setSession(HttpSession session){

this.session=session;

Progress status = new Progress();//保存上传状态

session.setAttribute("status", status);

}

public void update(long pBytesRead, long pContentLength, int pItems) {

Progress status = (Progress) session.getAttribute("status");

try {

Thread.sleep(5);

} catch (InterruptedException e) {

e.printStackTrace();

}

status.setpBytesRead(pBytesRead);

status.setpContentLength(pContentLength);

status.setpItems(pItems);

//System.out.println(">>>>>>>>>>>>>>>>>>>>"+status);

}

}

4、自定义扩展org.springframework.web.multipart.commons.CommonsMultipartResolver类,重写public MultipartParsingResult parseRequest(HttpServletRequest request) throws MultipartException方法:

CustomMultipartResolver.java

package com.yunfang.banks.listener;

import java.util.List;

import javax.servlet.http.HttpServletRequest;

import org.apache.commons.fileupload.servlet.ServletFileUpload;

import org.apache.commons.fileupload.FileItem;

import org.apache.commons.fileupload.FileUpload;

import org.apache.commons.fileupload.FileUploadBase;

import org.apache.commons.fileupload.FileUploadException;

import org.springframework.beans.factory.annotation.Autowired;

import org.springframework.web.multipart.MaxUploadSizeExceededException;

import org.springframework.web.multipart.MultipartException;

import org.springframework.web.multipart.commons.CommonsMultipartResolver;

public class CustomMultipartResolver extends CommonsMultipartResolver {

@Autowired

private FileUploadProgressListener progressListener;

public void setFileUploadProgressListener(

FileUploadProgressListener progressListener) {

this.progressListener = progressListener;

}

@Override

@SuppressWarnings("unchecked")

public MultipartParsingResult parseRequest(HttpServletRequest request)

throws MultipartException {

String encoding = determineEncoding(request);

FileUpload fileUpload = prepareFileUpload(encoding);

progressListener.setSession(request.getSession());

fileUpload.setProgressListener(progressListener);

try {

List fileItems = ((ServletFileUpload) fileUpload).parseRequest(request);

return parseFileItems(fileItems, encoding);

}

catch (FileUploadBase.SizeLimitExceededException ex) {

throw new MaxUploadSizeExceededException(fileUpload.getSizeMax(), ex);

}

catch (FileUploadException ex) {

throw new MultipartException("Could not parse multipart servlet request", ex);

}

}

}

5、uploadController.java

@RequestMapping("UserControllers/progress")

public void uploadFile(HttpServletRequest request,HttpServletResponse response,

@RequestParam("file") CommonsMultipartFile file) throws IOException {

response.setContentType("text/html");

response.setCharacterEncoding("GBK");

PrintWriter out;

boolean flag = false;

if (file.getSize() > 0) {

//文件上传的位置可以自定义

flag = FileUploadUtil.upLoadFile(file, request);

}

out = response.getWriter();

if (flag == true) {

out.print("1");

} else {

out.print("2");

}

}

6、FileUploadUtil.java

import java.io.File;

import javax.servlet.http.HttpServletRequest;

import org.springframework.web.multipart.MultipartFile;

public class FileUploadUtil {

public static Boolean uploadFile(HttpServletRequest request, MultipartFile file) {

System.out.println("开始");

String path = request.getSession().getServletContext().getRealPath("upload");

String fileName = file.getOriginalFilename();

System.out.println(path);

File targetFile = new File(path, fileName);

if (!targetFile.exists()) {

targetFile.mkdirs();

}

// 保存

try {

file.transferTo(targetFile);

return true;

} catch (Exception e) {

e.printStackTrace();

return false;

}

}

}

7、前台页面

String path = request.getContextPath();

String basePath = request.getScheme() + "://"

+ request.getServerName() + ":" + request.getServerPort()

+ path + "/";

%>

.file-box {

position: relative;

width: 340px

}

.txt {

height: 22px;

border: 1px solid #cdcdcd;

width: 180px;

vertical-align: middle;

margin: 0;

padding: 0

}

.btn {

border: 1px solid #CDCDCD;

height: 24px;

width: 70px;

vertical-align: middle;

margin: 0;

padding: 0

}

.file {

position: absolute;

top: 0;

right: 80px;

height: 24px;

filter: alpha(opacity : 0);

opacity: 0;

width: 260px;

vertical-align: middle;

margin: 0;

padding: 0

}

function myInterval()

{

$("#progress").html("");

$.ajax({

type: "POST",

url: "UserControllers/getSessions",

data : "1=1",

dataType : "text",

success : function(msg) {

var data = msg;

console.log(data);

$("#pdiv").css("width", data + "%");

$("#progress").html(data + "%");

}

});

}

function autTime() {

setInterval("myInterval()", 200);//1000为1秒钟

}

--%>

function UpladFile() {

var fileObj = document.getElementById("file").files[0]; // js 获取文件对象

var FileController = "UserControllers/progress"; // 接收上传文件的后台地址

// FormData 对象---进行无刷新上传

var form = new FormData();

form.append("author", "hooyes"); // 可以增加表单数据

form.append("file", fileObj); // 文件对象

// XMLHttpRequest 对象

var xhr = new XMLHttpRequest();

xhr.open("post", FileController, true);

xhr.onload = function() {

alert("上传完成!");

//$('#myModal').modal('hide');

};

//监听progress事件

xhr.upload.addEventListener("progress", progressFunction, false);

xhr.send(form);

}

function progressFunction(evt) {

var progressBar = document.getElementById("progressBar");

var percentageDiv = document.getElementById("percentage");

if (evt.lengthComputable) {

progressBar.max = evt.total;

progressBar.value = evt.loaded;

percentageDiv.innerHTML = Math.round(evt.loaded / evt.total * 100)

+ "%";

}

}

文件管理

data-target="#myModal">上传

aria-labelledby="myModalLabel" aria-hidden="true">

aria-hidden="true">×

文件上传进度

style="width: 100%;height: 20px; ">

type="file" name="file" class="file" id="file" size="28"

οnchange="document.getElementById('textfield').value=this.value" />

οnclick="UpladFile()" />

关闭

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

java awt文件上传_springMVC实现前台带进度条文件上传的示例代码相关推荐

  1. android 上传图片进度条,Android带进度条的文件上传示例(使用AsyncTask异步任务)...

    最近项目中要做一个带进度条的上传文件的功能,学习了AsyncTask,使用起来比较方便,将几个方法实现就行,另外做了一个很简单的demo,希望能对大家有帮助,在程序中设好文件路径和服务器IP即可. d ...

  2. atitit. 文件上传带进度条 atiUP 设计 java c# php

    atitit. 文件上传带进度条atiUP设计java c# php 1. 设计要求 1 2. 原理and架构 1 3. ui 2 4. spring mvc 2 5. springMVC.xml 3 ...

  3. java mvc上传文件进度_java相关:springMVC+ajax实现文件上传且带进度条实例

    java相关:springMVC+ajax实现文件上传且带进度条实例 发布于 2020-7-5| 复制链接 本篇文章主要介绍了springMVC+ajax实现文件上传且带进度条实例,具有一定的参考价值 ...

  4. Java使用OSS进度条方法上传文件很慢

    博主介绍: 22届计科专业毕业,来自湖南,主要是在CSDN记录一些自己在Java开发过程中遇到的一些问题,欢迎大家一起讨论学习,也欢迎大家的批评指正. 文章目录 前言 正文 业务场景 实现逻辑 遇到的 ...

  5. ASP.Net上传文件带进度条、显示剩余时间!

    近段时间因为开发隐私存储网站,采用ASP.Net 2.0在处理上传文件,因为上传的文件比较大,为了改善用户体验,所以自己重写了ASP.Net 的标准上传控件,实现显示进度条,百分比,平均速度,剩余时间 ...

  6. JavaWeb 使用ajax上传文件并显示进度条等上传信息

    文件上传在Web程序中是常用的功能,一般上传图片或者文件大小比较少的文件客户端不需要显示上传进度或文件上传的信息,如果是上传的文件比较大的时候,可以在客户端展示文件上传进度以及根据业务的需求显示文件上 ...

  7. ServletFileUpload上传文件带进度条

    ServletFileUpload上传文件带进度条 涉及了两个架包:commons-io-2.0.1.jar,commons-fileupload-1.2.2.jar,还有一个jquery-2.2.4 ...

  8. php带截切图片上传_PHP大文件切割上传并带进度条功能示例

    本文实例讲述了PHP大文件切割上传并带进度条功能.分享给大家供大家参考,具体如下: 前面一篇介绍了PHP大文件切割上传功能,这里再来进一步讲解PHP大文件切割上传并带进度条功能. 项目结构图: 14- ...

  9. 文件上传 带进度条(多种风格)

    文件上传 带进度条 多种风格 非常漂亮! 友好的提示 以及上传验证! 部分代码: <formid="form1"runat="server">< ...

最新文章

  1. github下载速度慢解决方法
  2. python简单代码加法-CPython 源码中整数加法的实现
  3. LoadRunner学习笔记一
  4. java旋转图片并画出_java实现图片角度旋转并获得图片信息
  5. MySQL配置文件优化
  6. 计算机技术分,计算机技术专业那么多,你分得清吗?
  7. 复选框操作checked选中为true,反之为False,也可以赋值为true,false
  8. 用js检测文本框中输入的是否符合条件并有错误和正确提醒
  9. 数据库编程连接mysql_使用JDBC编程-连接MySQL数据库
  10. Coursera课程 Competitive Strategy内容简介
  11. 高通、腾讯游戏牵手 运用5G等技术升级游戏体验
  12. 马化腾:一推就倒!中国技术实力只是表面辉煌罢了
  13. png转jpg java_怎么把图片PNG格式转换成JPG格式?
  14. 2016这一年读过的那些书
  15. 湖南人与江西人,关系有多密切?回顾四省填湘的历史
  16. -day26 必备SQL和表关系及授权
  17. php 亚马逊关键字排名,亚马逊提升关键词排名的方法
  18. 可可直播电视---开通官网
  19. 陈怡暖:黄金在1180附近跌势受限,因希腊问题获避险支持
  20. Windows 8 安全防御策略:avast!Free Antivirus+ZoneAlarm Free Firewall

热门文章

  1. Keras官方中文文档:Keras安装和配置指南(Windows)
  2. AsyncTask doinbackground onProgressUpdate onCancelled onPostExecute的基本使用
  3. linux 日志定时轮询流程详解(logrotate)
  4. 《Java核心技术》 -- 读书笔记 ② - 类 | 对象 | 接口
  5. 学习Android移植平台工具介绍的心得体会
  6. 【ATT】【second】Decode Ways
  7. vs2008 编译libtorrent
  8. 今天终于可以正常下班了
  9. RTT线程管理篇——RTT时间片
  10. C语言课后习题(50)