我想监控上传文件的进度 我正在使用servlet 3.1
我知道根据servlet 3.1的规范,我不需要apache common fileUpload 我只能通过Part class
来做到这一点我做了这个
InputStream inputStream = null;
double s;
String size=null;
String contentType=null;
String submittedName=null;
String tim=null;
String actualLocation=null;
System.out.println("getting it also here");
Part filePart = request.getPart("file");
System.out.println("getting it here");
if(description.equals(""))
{
System.out.println("please provide some description about file");
}
else{
if (filePart != null )
{
s=(double)filePart.getSize();
double MB=(s/1048576);
if(MB != 0)
{
size=String.valueOf((float)MB);
contentType=filePart.getContentType();
submittedName=getFormatted(filePart.getSubmittedFileName());
tim=String.valueOf(System.currentTimeMillis());
actualLocation=name+"-"+commun+"-"+tim+"-"+submittedName;
System.out.println("getting it there");
inputStream = filePart.getInputStream();
System.out.println("getting it here & there");
try
{
File file=new File(x,actualLocation);
Files.copy(inputStream, file.toPath());
}
我知道我可以使用监听器来监控进度,但主要问题是我应该在哪里设置进度监听器 我认为它应该使用Part.artPat.before System.out.println进行设置("在此处获取")
this is a screenshot of my project
你可以看到chrome正在显示上传的进度(在底部)(但我想要一个更令人印象深刻的进度条)
当我运行我的项目时,我认为在控制台中我会看到"也可以在这里找到它"在上传时,我发现除非上传完成,否则控件不会进入该部分。
我有点混淆上传发生的细分以及我应该在哪里设置进度监听器
答案 0 :(得分:0)
您不需要在服务器端执行上传进度条的任何操作。您只需使用javascript
,html
和css
即可。
如果您使用jQuery
,请查看此pugin http://malsup.com/jquery/form/。这是文件上传进度条演示链接http://malsup.com/jquery/form/progress.html。网站上还有两个演示和更多示例。
您可以使用html5
和javascript
来查看本教程http://codular.com/javascript-ajax-file-upload-with-progress。只需忽略PHP
部分即可。
您不必更改java
代码中的任何内容,因为文件上传完成后会触发servlet
方法。