一般处理程序处理图片后,jQuery不能即时显示图片,不解。

szjarvis 2017-04-01 11:00:57
我是用uploadify上传图片,上传完通过一般处理程序对图片进行缩放处理,处理完返回文件路径,在前台用jQuery替换原有图片,不调用一般处理程序都很正常,只要调用一般处理程序去处理图片就不能显示出来,感觉像是处理后的图片还没生成文件,但我已关闭了异步处理,为什么还这样,求解。

前端:

<script type="text/javascript">
var rPath = "";

$(function () {
UploadImg();
});

function UploadImg() {
$("#uploadify").uploadify({
'auto': true,
'swf': "../Common/Uploadify/uploadify.swf",
'uploader': 'UploadHandler.ashx?d=' + new Date(),
'queueID': 'fileQueue',
'fileObjName': 'upload',
'buttonText': '选择文件', //浏览按钮的文本,默认值:BROWSE 。
'progressData': 'percentage',
'formData': { 'action': 'upload', 'uppath': '../upfiles/temp', 'uid': 'admin' },
'preventCaching': true,
'width': '150',
'height': '35',
'fileTypeDesc': '支持的格式:', //在浏览窗口底部的文件类型下拉菜单中显示的文本
//'fileTypeExts': '*.jpg;*.jpge;*.gif;*.png', //允许上传的文件后缀
'fileTypeExts': '*.jpg;*.png',
'fileSizeLimit': '3MB',
'queueSizeLimit': 25,
'onUploadSuccess': function (file, data, response) {
rPath = JSON.parse(data).filepath;
//$("#image1").attr("src", result.filepath);
}
});
}


function HandlerImage() {
//$("#image1").attr("src", rPath); //这里直接显示是没问题的

//用ajax处理后就不能显示,显示一片空白
$.ajaxSettings.async = false; //即使加了同步也不起作用
$.getJSON("UploadHandler.ashx", { 'action': 'cutimage', 'uid': 'admin', 'filepath': rPath, 'sw': '300', 'sh': '300' },
function (result) {
if (result.statusCode == 200) {
alert(result.filepath); //返回的地址没问题,直接在浏览器中可查看到图片
$("#image1").attr("src", result.filepath);
}
});
}
</script>



一般处理程序:

string filepath = context.Request["filepath"];
string sW = context.Request["sw"];
string sH = context.Request["sh"];
filepath = context.Server.MapPath(filepath);

Stream stream = ImageMgr.FileToStream(filepath);
ImageMgr.ZoomAuto(stream, filepath, Convert.ToDouble(sW), Convert.ToDouble(sH), "", "");
stream.Close();
stream.Dispose();

string str = Success(filepath.Replace("\\", "\\\\"));
context.Response.Write(Success(filepath.Replace("\\", "\\\\")));


Success方法:

protected string Success(string filepath)
{
return "{\"statusCode\":\"200\", \"message\":\"操作成功!\", \"filepath\":\"" + filepath + "\"}";
}
...全文
185 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
正怒月神 版主 2017-04-01
  • 打赏
  • 举报
回复
把result.filepath 打出来看看
szjarvis 2017-04-01
  • 打赏
  • 举报
回复
引用 1 楼 hanjun0612 的回复:
context.Response.Write(Success(filepath.Replace("\\", "\\\\"))); 加上 context.Response.End();
不行喔,加了这个前端都不响应function (result)回传了。
正怒月神 版主 2017-04-01
  • 打赏
  • 举报
回复
context.Response.Write(Success(filepath.Replace("\\", "\\\\"))); 加上 context.Response.End();
szjarvis 2017-04-01
  • 打赏
  • 举报
回复
引用 5 楼 shingoscar 的回复:
图片地址不变的话,浏览器是不会理你的
果然是这个问题,本想偷个懒,自作聪明了。 谢谢大家的指点。
Poopaye 2017-04-01
  • 打赏
  • 举报
回复
图片地址不变的话,浏览器是不会理你的
lovebaby 2017-04-01
  • 打赏
  • 举报
回复
贴一下你的alert(result.filepath);

62,039

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧