我正在try 使用valums ajax上传程序.http://valums.com/ajax-upload/

我的页面上有以下内容:

var button = $('#fileUpload')[0];
var uploader = new qq.FileUploader({
    element: button,
    allowedExtensions: ['jpg', 'jpeg', 'png', 'gif'], 
    sizeLimit: 2147483647, // max size
    action: '/Admin/Home/Upload',
    multiple: false
});

它确实会发送到我的控制器,但qqfile总是空的.我试过这些:

public ActionResult Upload(HttpPostedFile qqfile)
AND
HttpPostedFileBase file = Request.Files["file"];

一点运气都没有.

我找到了Ruby on rails的一个示例,但不确定如何在MVC中实现它 http://www.jigsawboys.com/2010/10/06/ruby-on-rails-ajax-file-upload-with-valum/

在firebug中,我看到:

在此处输入图像描述

enter image description here 在此处输入图像描述

在此处输入图像描述

推荐答案

我想出来了.这适用于IE和Mozilla.

    [HttpPost]
    public ActionResult FileUpload(string qqfile)
    {
        var path = @"C:\\Temp\\100\\";
        var file = string.Empty;

        try
        {
            var stream = Request.InputStream;
            if (String.IsNullOrEmpty(Request["qqfile"]))
            {
                // IE
                HttpPostedFileBase postedFile = Request.Files[0];
                stream = postedFile.InputStream;
                file = Path.Combine(path, System.IO.Path.GetFileName(Request.Files[0].FileName));
            }
            else
            {
                //Webkit, Mozilla
                file = Path.Combine(path, qqfile);
            }

            var buffer = new byte[stream.Length];
            stream.Read(buffer, 0, buffer.Length);
            System.IO.File.WriteAllBytes(file, buffer);
        }
        catch (Exception ex)
        {
            return Json(new { success = false, message = ex.Message }, "application/json");
        }

       return Json(new { success = true }, "text/html");
    }

Asp.net相关问答推荐

无法翻译 LINQ

.NET 框架 3.5 和 TLS 1.2

当前http上下文的http动词

ASP.NET web api 无法获取 application/x-www-form-urlencoded HTTP POST

是否可以在没有那些 .svn 文件夹的情况下从 subversion 签出文件?

如何通过 Asp.net 中的命令参数传递多个值?

如何在没有实体框架的情况下使用 ASP.NET Identity 3.0

aspx 文件中的 if 语句

如何在 ASP.Net Core Razor 页面上重定向

如何从 SQL Server 2008 本身获取客户端 IP 地址?

您如何在 .net WebApi2 应用程序中的 OAuth2 令牌请求中使用额外参数

如何在不预编译的情况下使用命令行msbuild部署VS2012网站项目?

如何验证用户在 CheckBoxList 中 Select 了至少一个复选框?

如何将 LINQ 左外连接限制为一行

Html.RenderAction 和 Html.Action 的区别

ASP.NET MVC NonAction 含义

如何将 GridView.DataSource 导出到数据表或数据集?

GridView 按代码隐藏列

ExecuteReader:连接属性尚未初始化

在 Asp.Net MVC 5 中获取登录用户的用户 ID