我正在使用Uploadify上传一些带有ASP.NET的图片
我在ASP.NET中使用Response.WriteFile()
将上传结果返回给JavaScript。
正如文档中所指定的,我正在使用onAllComplete
事件来检查来自ASP.NET的响应字符串。
问题是JavaScript中始终未定义alert(response);
。
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代码;
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
对象的原因是在使用Uploadify with Firefox时传递身份验证Cookie。
我见过许多例子Response.Write
将值返回给onAllComplete
事件。但我得到的都是未定义的。
我还尝试使用Context.Response.Write
,this.Response.Write
,HttpContext.Current.Response.Write
。他们都返回undefined。
任何帮助表示赞赏。 感谢
答案 0 :(得分:-1)
似乎onAllComplete事件永远不会触发。这可能是因为我自动上传单个文件而不是多个文件。 我发现onComplete事件会触发,我可以使用它。