【发布时间】:2011-11-28 10:44:35
【问题描述】:
我正在使用带有此插件https://github.com/drogus/jquery-upload-progress 的 nginx 上传模块 (http://www.grid.net.ru/nginx/upload.en.html) 使用进度条在我的服务器上成功上传文件。这是我的表格:
<form id="upload" enctype="multipart/form-data" action="/upload/" method="post">
<input type="file" name="file_1">
<input type="submit" value="Upload">
</form>
现在我想使用一个选项来下载带有进度条的远程文件,所以我的表单是这样的:
<form id="download" action="/upload/" method="post">
<textarea rows="2" cols="20" name="links"></textarea>
<input type="submit" value="Upload">
</form>
因此,如果我在链接 textarea 中提供一个文件,即 http://domain.com/file.zip,并且在点击提交后它应该显示我下载文件的进度条。
我从我的第一个上传方法中注意到,对于正在上传的文件,有一些数据是从一个链接 (http://domain.com/progress?X-Progress-ID=0c1ecb6da3f3ffc3848ceb337541ab1d) 生成的,但我不确定是否我可以用它来显示下载进度条:
new Object({ 'state' : 'uploading', 'received' : 674808, 'size' : 2028876 } )
感谢您的帮助。 最好的问候
编辑修复
在这里找到解决方案,https://gist.github.com/1030450 需要使用 curl,将进度保存在文件中,然后使用 ajax 调用以获取当前进度...稍后将发布我的解决方案:)
【问题讨论】:
-
很确定这是不可能的,因为 JS 无权访问文件系统,因此不知道下载是如何进行的(甚至不知道正在下载)。如果你想这样做,你将需要一个下载管理器,例如有权访问此信息的 Java 或 Flash。是浏览器自带的进度条不够好吗?
-
谢谢你的回复先生,那么如何在这里看到一个例子请imgur.com,请点击网络上传按钮并提供一些图片网址(example.com/image.jpg),它会显示进度条作为下载.. 问候
-
对不起,完全误解了这个问题,我以为您想在客户端下载文件时向客户端显示进度条,这是不可能的 - 但是您想要做的事情是可能的可怕的 AJAX(可能还有更好的方法)——但这绝对是可能的。不过,我不是回答这个问题的最佳人选……
-
没关系,感谢您的关注,问候...还有其他人吗?
-
在这里找到解决方案,gist.github.com/1030450 需要使用 curl,将进度保存在文件中,然后使用 ajax 调用以获取当前进度... :)