在ASP.NET中用uploadify上传出现403

一尺丈量 2014-04-25 05:30:42
最后想使用一下uploadify,但不知道为什么总是出现“Failed to load resource: the server responded with a status of 403 (Forbidden)”,而在PHP中完全没问题。其中这个文件是上传的处理页。在VS2012自带的IIS8中调试。上传页的源代码(UploadHandler.aspx)如下:
<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>UploadiFive Test</title>
<script src="jquery-1.11.0.min.js" type="text/javascript"></script>
<script src="uploadify/jquery.uploadify.min.js" type="text/javascript"></script>
<script src="swfobject.js" type="text/javascript"></script>
<link rel="stylesheet" type="text/css" href="uploadify/uploadify.css">
<style type="text/css">
body {
font: 13px Arial, Helvetica, Sans-serif;
}
</style>
</head>

<body>
<h1>Uploadify Demo</h1>
<form enctype="multipart/form-data" method="post" id="uploadform">
<div id="queue"></div>
<input id="file_upload" name="file_upload" type="file" multiple><br />
<input type="button" value="开始上传" id="upload" />
<input type="button" value="取消上传" id="cancel" />
</form>

<script type="text/javascript">
$(function() {
$('#file_upload').uploadify({
'swf' : 'uploadify/uploadify.swf',
'uploader': 'UploadifyHandler.ashx',
'auto': false,
'multi':true
});
});
$('#uploadform').click(function () {
$("#file_upload").uploadify('upload','*');
});
$('#cancel').click(function () {
$('#file_upload').uploadify('cancel', '*');
});
</script>
</body>
</html>

结构如下所示

在chorme javascript控制台给出的错误如下:
00

对应的提示:
...全文
569 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
丿三生 2016-08-23
  • 打赏
  • 举报
回复
引用 4 楼 qq_21372653 的回复:
猜测可能是官方本身的一个漏洞吧 打开 jquery.uploadify.js 文件 在截图位置那里修改了就可以了, 因为SWFUpload.completeURL里末尾没有判断a值(文件名)是否存在,直接return path+a,path为当前文件路径,而导致直接读取文件目录(不设置IIS的话,就不能读取目录出现403,要是设置可访问的话就不安全了),出现403错误。 加个判断,当a为空时,就不返回path+a ,而直接return a即可。
这个的确是解决了错误
一尺丈量 2015-04-19
  • 打赏
  • 举报
回复
谢谢各位大牛,我已经不用uploadify了,但我想也是官方的一个漏洞!不会是文件夹权限和路径问题!
xinxin_1741694057 2014-11-06
  • 打赏
  • 举报
回复
ASP.NET中用FileUpload上传图片示例 protected void btnUp_Click(object sender, EventArgs e) { string path = Server.MapPath("./") + "upfile\\"; //获取当前目录下upfile文件夹在服务器上的绝对地址,作为图片保存地址。 StringBuilder strb = new StringBuilder(); //定义可变字符字符串变量,实现字符的动态重组 string FullFileName = this.UpLoadFile.PostedFile.FileName; //获得客户浏览器选择文件的全部路径以及文件名 string UpFileName = FullFileName.Substring(FullFileName.LastIndexOf("\\") + 1); //以"\"为索引,截取文件名,来用获取文件格式 string FileType = UpFileName.Substring(UpFileName.LastIndexOf(".") + 1); //以"."为索引,截取文件扩展名 UpFileName = CreateDateAndRandomString() + "." + FileType; //重新组合上传文件的名称 UpFileName = UpFileName.ToLower(); //全部设置为小写,避免带来的不方便 FileType = FileType.ToLower(); //设置为小写,主要用来判断 if (FileType == "bmp" || FileType == "jpg" || FileType == "gif") //判断上传文件类型,这样可以屏蔽用户扩展名的大小写不统一 { this.UpLoadFile.PostedFile.SaveAs(Server.MapPath("upfile") + "\\" + UpFileName); //执行文件上传操作 this.FileDetail.Visible = true;//显示上传文件信息 //显示上传文件的名称、类型和大小 this.FileName.InnerHtml = this.UpLoadFile.PostedFile.FileName; this.FileType.InnerHtml = this.UpLoadFile.PostedFile.ContentType; this.FileSize.InnerHtml = this.UpLoadFile.PostedFile.ContentLength.ToString(); this.SaveURL.InnerHtml = path + UpFileName; //显示保存到服务器端文件的路径 this.Image1.ImageUrl = "upfile" + "\\" + UpFileName; //设置upfile的路径来显示图片 this.Image1.Visible = true; Response.Write("<script>window.alert('文件上传成功!');</script>"); //提示用户成功 } else { Response.Write("<script>window.alert('文件格式错误!只接受bmp,jpg,gif格式的文件');</script>"); //提示格式错误 } }
cabbagecqyz 2014-11-05
  • 打赏
  • 举报
回复
引用 4 楼 qq_21372653 的回复:
猜测可能是官方本身的一个漏洞吧 打开 jquery.uploadify.js 文件 在截图位置那里修改了就可以了, 因为SWFUpload.completeURL里末尾没有判断a值(文件名)是否存在,直接return path+a,path为当前文件路径,而导致直接读取文件目录(不设置IIS的话,就不能读取目录出现403,要是设置可访问的话就不安全了),出现403错误。 加个判断,当a为空时,就不返回path+a ,而直接return a即可。
正好也遇到这个问题,用这个办法解决了
逍遥风尘 2014-10-29
  • 打赏
  • 举报
回复
牛人,问题成功解决
qq_21372653 2014-10-10
  • 打赏
  • 举报
回复


猜测可能是官方本身的一个漏洞吧
打开 jquery.uploadify.js 文件
在截图位置那里修改了就可以了,

因为SWFUpload.completeURL里末尾没有判断a值(文件名)是否存在,直接return path+a,path为当前文件路径,而导致直接读取文件目录(不设置IIS的话,就不能读取目录出现403,要是设置可访问的话就不安全了),出现403错误。
加个判断,当a为空时,就不返回path+a ,而直接return a即可。
insus 2014-04-26
  • 打赏
  • 举报
回复
加个路径试试:
wubing1111 2014-04-26
  • 打赏
  • 举报
回复
是不是你发布后中的文件夹的权限问题.
小子哟 2014-04-26
  • 打赏
  • 举报
回复
楼上说的对 这路径不对

62,046

社区成员

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

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

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

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