关于ASP文件上传的代码问题。
这是我在网上找到的文件上传代码:<%dimstrSaveFileNamedimstrNowstrnow=replace(replace(replace(now(),":"...
这是我在网上找到的文件上传代码:<%dim strSaveFileNamedim strNowstrnow =replace(replace(replace(now(), ":", ""), "-", ""), " ", "")if request.servervariables("REQUEST_METHOD")="POST" then '当前为postFormSize=Request.TotalBytesFormData=Request.BinaryRead(FormSize) '接收数据到FormDatastrSaveFileName =strNow &".jpg"set dr=CreateObject("Adodb.Stream")dr.Mode=3dr.Type=1dr.Opendr.Write(FormData)dr.SaveToFile Server.MapPath("/u/u/"&strSaveFileName),2dr.Closeset dr=nothingend ifresponse.Write "picID="+strSaveFileName%>可以实现文件上传,但为什么都用梁无惧的无组建上传?这个上传很老么?不实用了?梁无惧的无组建上传有什么优点?
展开
展开全部
上传对于asp来说,是很头疼的地方,借此说说个人感受1.朋友的这段代码其实就是利用Stream的核心代码,各种名目的无组件代码都基本上是这样用的2.上传过程接受二进制文件流-------------------》filedata=Request.BinaryRead(filesize)创建一个将数据写入 Stream 对象-------------》dr.Write(FormData)stream用SaveToFile保存为磁盘文件---》dr.SaveToFile 文件名3.从2这个过程来说,很多写成了类的无组件上传,和这个略有所不同,(至于读取数流方式略了)他们大概是这样的接受二进制文件流创建多个stream对象,将数据写入 其中一个Stream 对象 作为源对象 在源stream中有选择的读取数据到目标数据流stream对象将各个stream目标数据流对象保存为文件4.这个过程实际上看出了这些写成了类的组件实现了多文件同时上传这样一个重要功能5.无惧类判断图像文件格式采用了查看文件二进制特征码的方法。确定文件类型的。这样就堵住了把木马文件改名为图像文件上传这样的漏洞(这个其实是它最重要的功能)6.至于能上传文件的大小方面的区别,没有实际去试过7.我觉得asp如果是系统提供给管理员上传单个图片这样的功能,不需要用组件,没有必要在意这个漏洞,都管理员了,还用这个漏洞干嘛,如果是前台,一般需要多文件同时上传,我觉得还是用SWFUpload这类flash组件更符合趋势些
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询