C# 文件上传/我选择vb.net而不是php时出错了吗?

C# 文件上传/我选择vb.net而不是php时出错了吗?,c#,asp.net,ajax,vb.net,file-upload,C#,Asp.net,Ajax,Vb.net,File Upload,在过去的3天里,我一直在尝试为多个文件创建一个上传系统,可能很大,带有进度条 在过去的几天里,我一直在网上无休止地漫游,我可以说,我现在已经熟悉了大多数困难 遗憾的是,我在网上找到的所有解决方案都不是用c或vbscript编写的,事实上,大多数都是用php编写的 我不介意换成另一种语言,但整个网站都是用vb.net编写的,为了保持连贯性,我认为最好还是用它 文件上载: 问题1-进度条: 我理解文件上传不会与ajax一起工作,因为ajax响应只会在文件完成上传后发生。 我知道有一个使用iFrame

在过去的3天里,我一直在尝试为多个文件创建一个上传系统,可能很大,带有进度条

在过去的几天里,我一直在网上无休止地漫游,我可以说,我现在已经熟悉了大多数困难

遗憾的是,我在网上找到的所有解决方案都不是用c或vbscript编写的,事实上,大多数都是用php编写的

我不介意换成另一种语言,但整个网站都是用vb.net编写的,为了保持连贯性,我认为最好还是用它

文件上载: 问题1-进度条: 我理解文件上传不会与ajax一起工作,因为ajax响应只会在文件完成上传后发生。 我知道有一个使用iFrames的解决方案,但我似乎找不到任何最好使用vb.net或c的在线示例。 我知道还有另一种选择使用flash。怎样 我也知道人们大多反对使用iFrame,但我找不到原因

问题2-多个文件: 我可以用HTML5支持多个文件。很好,但是IE不支持吗?好IE用户一次只需上传一个文件

问题3-大文件: 怎样 我听说过一些关于大块和斑点的东西,但对我来说,这些仍然只是随机的胡言乱语。有人能解释一下,它的含义和实现方式吗


参考阅读材料是非常受欢迎的,即使它是在网上,我可能已经在我的搜索我的解决方案阅读它

@DevlshOne有一条不错的线索,里面有一些很好的信息

以下是我所做工作的三个基本要求:

创建用于客户端访问和上载控制的Silverlight应用程序。使用您选择的应用程序 创建一个HttpHandler来接收数据块并管理请求。 创建数据库后端以处理文件。 Silverlight工作得很好,因为我已经在VB ASP.NET中了。当在浏览器中使用而不是在浏览器外使用时,ASP.NET会话与Silverlight共享,因此不需要额外的安全/登录措施。Silverlight还允许我限制可以选择的文件类型,并允许用户从同一文件夹中选择多个文件

Silverlight应用程序获取用户选择的文件,显示它们以编辑某些属性,然后在用户单击“上载”按钮时开始上载。这将设置多个线程,每个线程将数据块上载到httphandler。HttpHandler和Silverlight应用程序以区块的形式发送和接收,HttpHandler在已上载区块的请求得到处理时始终发送OK或ERROR消息

我们的文件上传的具体实现还需要用户填写一些数据库属性字段,因此我们也有这些属性的输入,并将它们与文件数据一起上传到服务器

浏览器内的Silverlight应用程序也可以通过html将参数传递给它,因此我使用“最大块大小”或“最大线程数”等设置来实现这一点。我可以更改数据库中的设置,并将其应用于所有用户

数据库后端基本上是一些存储过程,在这里插入您的数据管理首选项,控制逻辑流。一个表保存完成的文件,没有文件数据,另一个表保存正在上载的临时文件。一个存储过程在临时表中启动一个新的文件记录并处理额外的块上载,另一个存储过程控制将完全上载的文件从临时表迁移到完成的表。HttpHandler中的一段VB代码将实际的二进制文件数据从临时表迁移到物理文件


这看起来相当复杂,但最困难的部分是与处理程序的交互,在响应/请求之间传递块,上传连续的块,等等。。我遗漏了很多信息,但这是基本的实现

这很有帮助!我会试一试,如果我有更多的问题,我会发布一个回复。谢谢你的长篇大论!好我最终使用了一个外部api。。。我只是放弃了。这不值得。嗯,这取决于你的需要。我的团队总共只花了2-3天,但它也是一个小团队,不需要与DBA或安全性等单独的团队打交道。你用了什么API?