java多文件上传显示进度条

java多文件上传显示进度条,第1张

使用   apache fileupload   ,spring MVC   jquery16x , bootstrap  实现一个带进度条的多文件上传,由于fileupload 的局限,暂不能实现每个上传文件都显示进度条,只能实现一个总的进度条,效果如图:

1、jsp 页面

<!DOCTYPE html>  

<%@ page contentType="text/html;charset=UTF-8"%>    

<%@ taglib prefix="c" uri=";

2、java 代码

package comcontroller;  

  

import javautilList;  

  

import javaxservlet>

JS指定读取上传文件的行数,对这点的话还需要进行什么?需要进行一个指定的读取,一方面儿指定读取,它能精确到什么位置呢?青岛有多少行,第一个是多少行,第二个是有多少字儿,第三个有多少个,这个编码的一个情况,一共这么三个方式,三种这个类型可以说是齐头并进,所以这S来讲的话,他尤其面对这个确定一个行数,确定文件内容,以及确定这个文件字数来讲的话,这里面实际上发挥了非常大的作用,可以这么讲

首先需要一个表单来让用户选择要上传的文件。

1 <form id="form_upload" action="/upload" method="POST">

2 <input type="file" name="picture" id="picture" />

3 <input type="hidden" id="X-Progress-ID" name="X-Progress-ID" value=""/>

4 <input type="hidden" id="id" name="id" value=""/>

5 <input id="form_submit_button" class="tp-button" type="submit" value="Submit" />

6 </form>

这里增加了两个隐藏的输入框,第一个是 ‘X-Progress-ID’,代表上传 ID,这样我们才能够在服务器端支持并发的上传请求。稍后我们会看到,服务器是如何处理这个值的。

然后还有一个隐藏输入框 ‘id’,在我们的例子里代表菜品的编号。

我们将使用 Ajax 来发送 POST 请求,这样表单便可以很好地集成在现代的网络界面中,同时包含一个进度条。我们打算使用 jQuery Form plugin 来实现这一点。

函数 ajaxSubmit() 将会帮我们搞定一切。

为上传 ID 生成一个随机字串,并用它设置输入框的值。

需要指定一个用于上传请求的 URL 和两个回调函数:一个在请求前调用,另一个在请求完成后调用。

1 $('#X-Progress-ID')val('random string');

2 var options = {

3 dataType: 'xml',

4 url: '/uploadX-Progress-ID='+$('#X-Progress-ID')val(),

5 beforeSubmit: showRequest,

6 success: showResponse

7 }

8 $('#form_upload')ajaxSubmit(options);

showRequest 回调函数只需要像下面这么简单就行了:

1 function showRequest(formData, jqForm, options) {

2 // do something with formData

3 return True;

4 }

在 showResponse 函数中,我们需要处理响应,并对它进行 *** 作。在我的例子里,我处理了服务器返回的带有状态值的 xml。

1 function showResponse(response) {

2 // do something with response

3 }

用户按下提交的时候,我们希望显示一个进度条,因此可以使用下面的 JS 代码,向表单添加进度条。progressBar() 方法是 jQuery progress bar plugin 的一部分。

1 $('#form_upload')find('#form_submit_input')append('<span id="uploadprogressbar"></span<');

2 $('#form_upload')find('#uploadprogressbar')progressBar();

现在我们需要添加一个每隔几秒运行一次的函数,来从服务器获取上传进度,并相应地更新进度条。

为此,我们使用 setInterval() 向服务器发出一个 GET 请求,获取 JSON 格式的进度值。我们向服务器传送上传 ID。当返回 null 值的时候,就可以知道上传已经结束。

01 function startProgressBarUpdate(upload_id) {

02 $("#uploadprogressbar")fadeIn();

03 if(g_progress_intv != 0)

04 clearInterval(g_progress_intv);

05 g_progress_intv = setInterval(function() {

06 $getJSON("/get_upload_progressX-Progress-ID="

07 + upload_id, function(data) {

08 if (data == null) {

09 $("#uploadprogressbar")progressBar(100);

10 clearInterval(g_progress_intv);

11 g_progress_intv = 0;

12 return;

13 }

14 var percentage = Mathfloor(100 parseInt(datauploaded) / parseInt(datalength));

15 $("#uploadprogressbar")progressBar(percentage);

16 });

相信通过Asp Net的服务器控件上传文件在简单不过了 通过AjaxToolkit控件实现上传进度也不是什么难事 为什么还要自己辛辛苦苦来 实现呢?我并不否认”拿来主义“ 只是我个人更喜欢凡是求个所以然 本篇将阐述通过Html I>

以上就是关于java多文件上传显示进度条全部的内容,包括:java多文件上传显示进度条、antd vue upload组件使用customRequest上传文件显示文件上传进度、js指定读取上传文件的行数等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/9301568.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-26
下一篇 2023-04-26

发表评论

登录后才能评论

评论列表(0条)

保存