试图在MVC3应用程序中使用Uploadify有什么问题?

时间:2011-05-26 17:39:22

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

为什么文件输入元素根本不显示?看下面的代码和屏幕截图。我花了最后几个小时在我能找到的每个论坛上研究这个。我无法得到一致的答案。

<!DOCTYPE html>
<html>
<head><title>

    Home Page

</title><link href="mvc3/Content/Site.css" rel="stylesheet" type="text/css" />
    <script src="/mvc3/Scripts/jquery-1.5.1.js" type="text/javascript"></script>
    <script src="/mvc3/uploadify/jquery.uploadify.v2.1.4.js" type="text/javascript"></script>
    <script src="/mvc3/uploadify/swfobject.js" type="text/javascript"></script>
        <script type="text/javascript">
            jQuery.noConflict();
            jQuery(document).ready(function () {
                jQuery("#dr405").uploadify({
                    'uploader': 'uploadify.swf',
                    'cancelImg': 'cancel.png',
                    'buttonText': 'Browse Files',
                    'script': 'Uploader.ashx',
                    'folder': 'uploads',
                    'fileDesc': 'Image Files',
                    'fileExt': '*.jpg;*.jpeg;*.gif;*.png',
                    'multi': true,
                    'auto': true
                });
            }); 
    </script> 
</head>
<body>
    <div class="page">
        <div id="header">
            <div id="title">
                <h1>My MVC Application</h1>
            </div>
            <div id="logindisplay">

        Welcome <strong>dougrchamberlain</strong>!
        [ <a href="/mvc3/Account/LogOff">Log Off</a> ]

            </div> 
            <div id="menucontainer">
                <ul id="menu">
                    <li><a href="/mvc3/">Home</a></li>
                    <li><a href="/mvc3/Home/About">About</a></li>
                </ul>
            </div>
        </div>
        <div id="main">

    <h2>Welcome to ASP.NET MVC!</h2>

    <p>Please upload your return</p>   
    <input type="file" name="dr405" id="dr405" />


            <div id="footer">
            </div>
        </div>
    </div>
</body>
</html>

enter image description here

更新

修复url引用后。要实际指向有问题的文件,这就是我在最后看到的内容。

enter image description here

2 个答案:

答案 0 :(得分:1)

uploadify.swf的网址看起来不对。我建议你在处理网址时总是使用网址助手:

jQuery("#dr405").uploadify({
    'uploader': '@Url.Content("~/mvc3/uploadify/uploadify.swf")',
    'cancelImg': 'cancel.png',
    ...
});

答案 1 :(得分:1)

我有同样的问题,虽然我没有使用ashx。问题是我没有正确引用我的控制器方法。我的控制器名为FileController.cs所以不是'script':'FileController / Upload',我使用'script':'File / Upload',现在没有IO错误 - 它正确调用控制器中的函数。

<script type="text/javascript">
$(document).ready(function () {
    $("#file_upload").uploadify({
        'uploader': '/uploadify/uploadify.swf',
        'script': '/File/Upload',
        'cancelImg': '/uploadify/cancel.png',
        'multi': true,
        'auto': true,
        'buttonText': 'SELECT',
        'onComplete': function (event, queueID, fileObj, response, data) {
            $("#" + $(this).attr('id') + queueID + " .percentage").text(' - Completed');
            return false;
         }
    });
});

public string Upload(HttpPostedFileBase fileData)
    {
        var fileName = this.Server.MapPath("~/uploads/" + System.IO.Path.GetFileName(fileData.FileName));
        fileData.SaveAs(fileName);
        return "ok";
    }