Пытаетесь использовать Uploadify в приложении MVC3, в чем проблема? - PullRequest
1 голос
/ 26 мая 2011

Почему элемент ввода файла не отображается вообще ??? см. код и снимок экрана ниже. Я провел последние несколько часов, исследуя это на каждом форуме, который я могу найти. Я не могу получить последовательный ответ.

<!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 ]

1 голос
/ 16 декабря 2011

У меня была такая же проблема, хотя я не использовал Ashx.Проблема заключалась в том, что я неправильно ссылался на метод моего контроллера.Мой контроллер называется FileController.cs, поэтому вместо «script»: «FileController / Upload» я использовал «script»: «File / Upload», и теперь больше нет ошибки ввода-вывода - он правильно вызывает функцию в контроллере.

<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";
    }
1 голос
/ 26 мая 2011

URL к uploadify.swf выглядит неправильно.Я бы порекомендовал вам всегда использовать URL-помощники при работе с URL:

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