Я использую 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
. Все они возвращают неопределенное.
Любая помощь приветствуется.
Спасибо