我需要将文件上传功能添加到ASP.NET网站,并希望能够在服务器上读取文件的一小部分,同时它还是上传。之一斑或预览类型功能,所以我能确定的内容,并给一些反馈给用户,同时它仍然上传(我们谈论的大文件在这里)。有没有办法做到这一点?我想这写一次上传选择,然后在幕后开始满档的另一上传文件的字节只有一个固定数量的自定义控件的最坏情况。不能完全确定,即使这是可能的,但我在寻找一个更好的解决方案呢?谢谢!

有帮助吗?

解决方案

这听起来像你想避免在大文件上传“死亡白屏”。如果是这样,你可能想看看 Telerik的RadUpload控制,该提供上传过程中的进度条。

如果你想推出自己的,我会反编译试用版软件的想法。我在他们以这种方式源偷看,他们通过自定义的HttpModule和HttpHandler的与他们的控制一起组合完成进度条。该处理器路线以流的方式,同时该模块提供“完成百分比”信息的文件 - 或其他方式轮;因为我看着它,它已经有几年了。

修改

  

其实,我试图做服务器端处理的文件仍在上传。我想通过HTTP导入用户数据,但想呈现与我们将如何处理他们的数据,而该文件仍在上传预览/选项(列定义等)的用户。无论什么时候,我们会好好文件原样,因此上传不需要被中断。鉴于其实我是想根据读取文件的一小部分,因为它正在上传的上传过程中的互动,你会仍然建议相同的方法?

嗯......它会是非常困难的事,它可能无法正常工作跨浏览器,但它可以用这种方法来完成。

由于它完全有可能与输入文件正如我所说流工作,你可以有你的INTIAL处理更新一些州为流处理的一部分。如果不作为流处理,你必须等待完整的文件上传之前,你可以用它做任何事情。

问题是这样的:在上传文件时,你不能有任何更多的基于HTML的互动。后必须继续有增无减或上传失败。我挂的控制,只是因为大多数浏览器允许JavaScript继续后期间执行和更新页面的DOM在所有工作。

因此,为了使这项工作,你有在的HttpModule,这是通过由HttpHandler的处理的XmlHttpRequest调用发送回客户端的文件处理过程中更新一些标准化的状态服务器端。你必须使用纯JavaScript / DOM来更新用户界面。

因此,正如我所说,这是复杂的,可能是越野车的跨浏览器,但它在理论上可以做到。

有alernatives,可能是更稳定的,但不一定是可行的:你可以建立一个ActiveX控件或点击,一旦.NET应用程序前处理上传文件之前,甚至可能传输异步的文件,而用户继续浏览。有些用户可能不喜欢这种选择,我不知道你的部署方案的细节,但它是一个选项。

其他提示

有一个HTTP HEAD方法但不PEEK

HEAD会给你有关文件的信息和标题。

当然,你可以做,你想要做什么特别的要求处理。你不必与静态资源工作,你可以动态创建任何你想要的回应。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top