Значение ответа Uploadify всегда не определено в ASP.NET - PullRequest
0 голосов
/ 04 марта 2011

Я использую Uploadify для загрузки некоторых изображений в ASP.NET.
Я использую Response.WriteFile() в ASP.NET, чтобы вернуть результат загрузки обратно в JavaScript. Как указано в документации, я использую событие onAllComplete для проверки строки ответа из ASP.NET.

Проблема в том, что alert(response); всегда неопределен в JavaScript.

Код JavaScript, как показано ниже:

$(document).ready(function() {
            var auth = "<% = Request.Cookies[FormsAuthentication.FormsCookieName]==null ? string.Empty : Request.Cookies[FormsAuthentication.FormsCookieName].Value %>";
            $('#btnUpdateProfileImg').uploadify({
                'uploader': '../script/uploadify/uploadify.swf',
                'script': '../uploadprofimg.aspx',
                'cancelImg': '../script/uploadify/cancel.png',
                'folder': '../script/uploadify',
                'scriptData': { 'id': $(this).attr("id"), 'token': auth },
                'onAllComplete': function(event, queueID, fileObj, response, data) {
                    alert(response); 
                }
            });
        });

код ASP.NET a ниже;

protected void Page_Load(object sender, EventArgs e)
    {
        try
        {
            string token = Request.Form["token"].ToString();
            FormsAuthenticationTicket ticket = FormsAuthentication.Decrypt(token);
            if (ticket != null)
            {
                var identity = new FormsIdentity(ticket);
                if (identity.IsAuthenticated)
                {
                    HttpPostedFile hpFile = Request.Files["ProfileImage"];      
                    string appPath = HttpContext.Current.Request.ApplicationPath;
                    string fullPath = HttpContext.Current.Request.MapPath(appPath) + @"\avatar\";
                    hpFile.SaveAs(Server.MapPath("~/" + uniqName));
                    Response.ContentType = "text/plain";
                    Response.Write("test");    
                }
            }
        }
        catch (Exception ex)
        {
            Response.Write("test");
        }
    }

Причиной использования объекта FormsAuthenticationTicket является передача файла cookie аутентификации, хотя при использовании Uploadify с Firefox.

Я видел много примеров, когда Response.Write возвращает значение назад событию onAllComplete. Но все, что я получаю, не определено. Я также пытался использовать Context.Response.Write, this.Response.Write, HttpContext.Current.Response.Write. Все они возвращают неопределенное.

Любая помощь приветствуется. Спасибо

1 Ответ

0 голосов
/ 08 марта 2011

Кажется, что событие onAllComplete никогда не срабатывает.Возможно, это потому, что я автоматически загружаю отдельные файлы, а не несколько файлов.Я обнаружил, что происходит событие onComplete, и я могу использовать его вместо этого.

...