当有人从文件上传中选择文件时,我想检查文件大小和文件类型,以便我使用
$('#fuEnglish1').live('change', function () {
var form = $("#form11").serialize();
var myurl = '<%= Url.Action("CheckFileSizeandType", "Media") %>';
$.ajax({
url: myurl,
type: "POST",
data: { Media: form },
success: function (mydata) {
}
});
});
发布文件。但是当它发布到控制器方法时,Request.Files.Count等于0。 我做错了什么。
答案 0 :(得分:2)
大多数浏览器都不允许您发送带有AJAX请求的文件。如果您想要跨平台的异步上传,则需要使用基于Flash,Java或iframe的上传器。对于非Flash上传器,请尝试使用Ajax Upload或jQuery Form插件。
答案 1 :(得分:1)
请记住,表单encodingtype需要是“multipart / form-data”才能实际发布filecontent。不幸的是,我不认为$ .ajax支持不同的enctype,所以你有两个选择:
希望有所帮助!
答案 2 :(得分:0)
设置<httpRuntime maxRequestLength="YourFileSizeHere"/>
正常上传文件并使用jQuery轮询MVC操作以获取错误或成功。
这不会解决ASP.NET必须上传整个文件的问题,然后才能访问任何对象的属性。出于安全原因,它也无法解决您无法通过JavaScript上传文件的问题,最接近的是通过Javascript将表单定位到iframe,这就是谷歌所做的。