4、刚刚提醒了我,还可以直接开发浏览器插件。 上述四种方法的比较: 1、开发简单,由于要定时起一个>
使用apache的commons-fileUpload。 1、实现进度监听接口。 public void update(long pBytesRead, long pContentLength, int pItems) { double mBytes = pBytesRead / 1000000; double total=pContentLength/1000000; if (megaBytes == mBytes) { return; } megaBytes = mBytes; if (pContentLength == -1) { Systemoutprintln("So far, " + pBytesRead + " bytes have been read"); } else { Systemoutprintln("So far, " + pBytesRead + " of " + pContentLength + " bytes have been read"); double read=(mBytes/total); NumberFormat nf=NumberFormatgetPercentInstance(); sessionsetAttribute("read", nfformat(read)); } } 2、页面通过ajax获取session中的进度: public void doPost(>
通过>
在php编程领域不同的程序员尝试了不同的解决方法
第一个解决方法:在apc里面实现
第二个解决方法:通过一个php拓展实现
这二个解决方法都很好,但是很少人去采用他们,为什么呢
主要有二个原因:
1对于php而言他们都不是php原生的,在他们使用这个之前需要自己去安装拓展
2他们使用一个本地的内存去传递传递,apc使用系统共享的内存,upload_progress插件使用文件系统的内存他们都不是很符合php这种专门的web语言的特性
最完美的解决方案是我们可以通过php的session handling system来解决
php的session系统是php系统的一部分,它可以使用不同的内存来分配处理,比如当前文件系统和memcache在集群和负载均衡中共享session是非常有用的
Arnaud leBaln认真思考后创建一个完整的实现了文件上传进度内存分配的功能并且可能会被纳入下个php版本中
长话短说:在下个版本(54)我们可能就会看到文件上传进度机制在里面
Arnaud编写了一个非常完美的帮助文档来解释这些功能我们可以配置PHP的选项来使用这些特性,实现我们要确定我们的默认属性
sessionupload_progressenabled = 1sessionupload_progressprefix = upload_progress_
sessionupload_progressname = PHP_SESSION_UPLOAD_PROGRESS
当我们使用的时候,我们需要创建一个如下HTML格式的表单
<form action="uploadphp" method="POST" enctype="multipart/form-data"><input type="hidden"
name="<php echo ini_get("sessionupload_progressname"); >"
value="johannesupload" />
<input type="file" name="file1" />
<input type="file" name="file2" />
<input type="submit" />
</form>
当我们上传一个文件的时候,这个文件足够大,我们的服务器会周期性的读取$_SESSION['upload_progress_johanesupload']的值,这个完整的内容在Arnaud编写的帮组文档都有完整的说明,我在这里也不重复了
不久的将来我们就可以抛弃apc这种解决方案
声明:这篇文章所描述的特性并没有包含在当前稳定的php软件里面这些特性和使用方法都可能会改变。
ps: 就我而言 我觉得文件上传的进度控制浏览器自己就要返回数据给用户,并且提供一个退出按钮来结束上传。
现在和jQyery插件都可以来完成上传进度的控制但是基本上都是基于flash技术来实现,所以php自己如果能提供一种比较完美的解决方案的话
开发人员就可以省去很多麻烦
以上就是关于java file实现上传进度条全部的内容,包括:java file实现上传进度条、angularjs使用$http post上传文件的时候,怎样获取文件上传的进度、如何获取FileUpload上传文件的进度等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)