2011-04-15 155 views
1

我想为我的ASP.NET MVC应用程序构建一个文件管理器,并且很好奇是否可以通过ajax上传文件。 I heard it was not possible and that you had to use flash可以通过Ajax上传文件吗?

所以在我的旅行到目前为止,我偶然发现了这个演示:http://aquantum-demo.appspot.com/file-upload

它看起来像一个使用jQuery的一个非常坚实的文件上传。这是否使用闪光来完成其目标?你对我刚刚链接的插件有什么看法?

我听说了很多关于Uploadify,那会是更好的选择吗?

对不起,我是新来的文件上传舞台。

+0

对aquantum演示文件上传没有意见吗? – Chev 2011-04-15 23:23:53

回答

3

不,但你可以embed an iframe。这个解决方案看起来像使用AJAX上传文件(无需刷新页面)。

+0

所以我猜我的主要问题的答案是“否”? – Chev 2011-04-15 23:15:31

+0

@Chevex - 是的,答案是否定的。 – Jage 2011-04-15 23:16:45

1

您可以使用HTML5 file API(如果您使用合格浏览器)。

var reader = new FileReader(); 

reader.readAsBinaryString(file); 

reader.onload = function(string) { 
    $.post(url, string, function() { 
     // success 
    }); 
}; 
+0

这不是一个选项。该网站必须在非HTML5浏览器中工作。 – Chev 2011-04-15 23:17:02

+0

@Clevex这是通过ajax发送文件数据而不依赖回发或闪存的唯一方法。我建议您使用功能检测来选择“最佳”选项。 – Raynos 2011-04-15 23:21:37

+0

我没有说我“不会”使用闪光灯。如果这是最好的选择,那么我会去用它。 Uploadify看起来也很稳固。 – Chev 2011-04-15 23:23:08

1

您可以使用Uploadify,正如你提到的,或ajaxupload,这也是一个不错的选择。我使用它们,它们都是很好的组件。

+0

我更喜欢你链接到的ajaxupload。 – Chev 2011-04-15 23:25:52

1
在关于AJAX

,答案是否定的,JavaScript框架不支持上传文件,虽然这东西看出来的HTML5,插座和二进制FileReaders等

未来对于平均值你可以使用Flash上​​传器,这样可以在不改变页面上下文的情况下上传文件。

它也可以让你与网页进行交互,所以当文件被上传后,你可以发送一个命令到页面去执行一个java脚本函数,反过来会修改页面本身。

我会看看Uploadify它使用闪存加载器,并被设计为与jQuery完全交互。