【问题标题】:Jquery upload - MVC file name not workingJquery 上传 - MVC 文件名不起作用
【发布时间】:2012-08-14 21:32:25
【问题描述】:

使用 Jquery Uploadify,我无法将文件传递给控制器​​。

查看:

       <input type="file" name="file_upload" id="file_upload" />

jquery:

<script type="text/javascript">
    $(function () {

        var uploadUrl = $('#file_upload').data();

        $('#file_upload').uploadify({

            'auto': true,
            'script': uploadUrl,               
            'swf': 'Uploadify/uploadify.swf',
            'uploader': '/ControllerName/Upload',               
            'debug': true

        });
    }); 
</script>

控制器

  [HttpPost]
    public string Upload(HttpPostedFileBase file)
    {          
       //"file" = null is being passed from the view to the controller.
       //code..
    }

我遗漏了一些东西,感谢您的帮助。

【问题讨论】:

    标签: javascript jquery asp.net asp.net-mvc asp.net-mvc-3


    【解决方案1】:

    你可以使用:

    [HttpPost]
    public string Upload(HttpPostedFileBase FileData) {
    }
    

    [HttpPost]
    public ActionResult Upload() {
        if (Request.Files.Count > 0 && Request.Files[0].ContentLength > 0) {
            HttpPostedFileBase postedFile = Request.Files[0];
            // Do something with it
        }
    }
    

    如果这些都不起作用并且您的操作根本没有触发(即尝试调试并查看方法中的断点是否被命中),那么您的问题很可能是“脚本”值 - 您是否正在运行虚拟目录?如果是这样,您需要将目录的名称放在前面。 Uploadify 使用的是绝对路径。

    您可能还想检查 swf 路径 swf': 'Uploadify/uploadify.swf'。它的配置方式,它是相对于当前页面的。因此,如果您在 localhost/Somepage 上,它将寻找 /Somepage/Uploadify/uploadify.swf。您可以检查浏览器的网络选项卡以确保uploadify.swf 不是404

    【讨论】:

    • 控制器在这里更常用..对不起..这是一个真正的控制器名称..我编辑了它..
    • 你的第一个选项和我的有什么不同?
    • 是的,它击中了控制器……我尝试使用表单中的另一个值传递表单数据……效果很好。问题在于传递文件。
    • 您能检查一下uploadify.swf 没有在页面加载时抛出404 吗?看我的回应。
    • 因为uploadify使用FileData作为传递的参数名
    【解决方案2】:

    Uploadify 默认使用fileData,所以:

    [HttpPost]
    public string Upload(HttpPostedFileBase fileData) 
    {
        ...
    }
    

    但您也可以使用 fileObjName 设置指定此名称:

    fileObjName: 'foobar'
    

    然后:

    [HttpPost]
    public string Upload(HttpPostedFileBase fooBar) 
    {
        ...
    }
    

    【讨论】:

      【解决方案3】:

      不熟悉jquery Uploadify 但是输入的名称不应该与HttpPostedFileBase参数的名称匹配吗?如果不是那么无视。这是我唯一看到的。

       <input type="file" name="file_upload" id="file_upload" />
      
       [HttpPost]
      public string Upload(HttpPostedFileBase file_upload)
      {          
        ...
      }
      

      更新:我看到了,Uploadify 使用 fileData 作为参数。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2010-09-13
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-09-18
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多