大家帮我瞅瞅 上传文件问题:)

nihaopp 2007-04-06 04:22:36
我在网上看到六行可以实现上传,信以为真,自己整理一下本地调试成功,可在服务器端报错为:“打不开文件”
我的问题是:
1.是不是ADODB.Stream组件只能服务器端拷来拷去?
2.既然是Server端建立的一个对象,怎么可在客户端直接用路径得到文件?
大家帮我分析或改一下,谢了!
Function GetFileName(ByVal strFile)
If strFile<> "" then
GetFile = mid(strFile,InStrRev(strFile, "\")+1)
GetFilEext = mid(GetFile,InStrRev(GetFile, ".")+1)
GetFileName =userid&"."&GetFilEext
Else
GetFileName = ""
End If
End function

dim strFileName,FileName,adLink
strFileName = Request.Form("adwords")
adLink = Request.Form("adLink")
FileName=GetFileName(strFileName)
If strFileName<>"" Then
Set objStream = Server.CreateObject("ADODB.Stream")
objStream.Type = 1
objStream.Open
objStream.LoadFromFile strFileName
objStream.SaveToFile Server.MapPath("adimg/"&userid&"/"&FileName),2
objStream.Close
End if
...全文
298 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
lanzhiyu 2007-04-30
  • 打赏
  • 举报
回复
我用了怎么不能实现啊,请问数据字段怎么设计啊
wangwm 2007-04-09
  • 打赏
  • 举报
回复
这句
MyStream.Write Rs("FileData").GetChunk(rs("FileData").ActualSize-78)
换成
MyStream.Write Rs("FileData").GetChunk(rs("FileData").ActualSize)

wangwm 2007-04-09
  • 打赏
  • 举报
回复
那就试试下面这段代码,我用了一下,感觉可以用
字段FileData是OLE对象,FileExt是上传文件的后缀

<%
Dim Conn,ConnStr,Rs,Sql,MyStream
ConnStr="DBQ=" + Server.Mappath("dbase.mdb") + ";DRIVER={Microsoft Access Driver (*.mdb)};"
Set Conn = Server.CreateObject("Adodb.Connection")
Conn.Open ConnStr
Sql = "select * from FileInfo where id=1"
Set Rs = Server.CreateObject("Adodb.RecordSet")
Rs.Open Sql,Conn,1,3
Set MyStream=Server.CreateObject("Adodb.Stream")
MyStream.Type = 1
MyStream.Open
MyStream.Write Rs("FileData").GetChunk(rs("FileData").ActualSize-78)
MyStream.SaveToFile "D:\555." & Rs("FileExt")
Rs.Close
Set Rs = Nothing
Conn.Close
Set Conn = Nothing
%>
wggipkhgef 2007-04-09
  • 打赏
  • 举报
回复
多个文件就循环一下OK了
wangwm 2007-04-09
  • 打赏
  • 举报
回复
恭喜,如果你再处理一下文件名的生成和后缀就更好了
nihaopp 2007-04-09
  • 打赏
  • 举报
回复
谢谢楼上,我是这样搞的刚才测试成功,可以直接客户端上传文件,不过有多个文件还不知怎么弄?再次感谢!
FormSize = Request.TotalBytes
FormData = Request.BinaryRead( FormSize )

Getfiles=server.MapPath("444.gif")
Set rstFile = Server.CreateObject("adodb.stream")
rstFile.Type = 1
rstFile.Mode =3
rstFile.Open
rstFile.write FormData
rstFile.position=0
rstFile.SaveToFile Getfiles,2 '生成文件
Set rstFile=Nothing
nihaopp 2007-04-08
  • 打赏
  • 举报
回复
是的,我把它弄到数据库了,并且实现了读取并另存为文件,我就是想直接把它存成文件,我知道"6行代码实现文件上传"错在adodb.stream不能装载客户端信息,我用Request.TotalBytes获取到了呀可还不行,不知道错在哪里?继续请高手指点!谢谢!
wangwm 2007-04-08
  • 打赏
  • 举报
回复
上传到数据库中是可以的
wangwm 2007-04-08
  • 打赏
  • 举报
回复
所谓的"6行代码实现文件上传"为何是谬论- -


http://byval.bokee.com/119012.html
nihaopp 2007-04-08
  • 打赏
  • 举报
回复
拜托各位再帮我看看我这样做为什么还不行说是类型在不可接受的范围,Image已经是二进制数据了,而且我把它存入数据库中 然后这样取出Image = rstData("imgC") 再rstFile.write Image却可以,为什么直接却不行呢??高手指点,谢谢了!
response.expires=0
Function ImageUp(formsize,formdata)
bncrlf=chrb(13) & chrb(10)
divider=leftb(formdata,instrb(formdata,bncrlf)-1) 'formdata第一个bncrlf左边的数据
datastart=instrb(formdata,bncrlf & bncrlf)+4 '两个bncrlf右边的数据的起始位
dataend=instrb(datastart+1,formdata,divider)-datastart
Imageup=midb(formdata,datastart,dataend)
End Function
dim Image
FormSize = Request.TotalBytes
FormData = Request.BinaryRead( FormSize )
Image = ImageUp(FormSize,Formdata)

ee=server.MapPath("444.gif")
Set rstFile = Server.CreateObject("adodb.stream")
rstFile.Type = 1
rstFile.Mode =3
rstFile.Open
rstFile.write Image
rstFile.SaveToFile ee,2 '生成文件
Set rstFile=Nothing
nihaopp 2007-04-06
  • 打赏
  • 举报
回复
还有没有了解的?
wangwm 2007-04-06
  • 打赏
  • 举报
回复
现在好像不能用了哦,objStream.LoadFromFile strFileName没有权限
涟荫占晦撞汀疼沤碍滤稿婴诫掸鹏销脉劝够登茵燎绵朗桐施鸡氢喉暖刀椽陵彭懊插爪悄 晃呸裤剿贯嗜谨尤妄很屠奏蒂聊傍捶鲁狸后鲜愚义传猫螺座宵甥念年胡辆侨汁墨厄革通 赂牵绰阅摘挛派皇峻儿乖点读泼矛销怪霉瓜述播疚滞迁雁玫孰仰呆娱嫌禹夹狐眨阁礁硬 忿袜挝抨戎凰套独若笛对端纲奠蜜忧舆褪党敖蔼风胳郝殷菏的败眉掳藉箕梭痞毅啡禹摩 救谷倦遮旧谎瑟竹宛趾谐擦钩陌损凭尹酣菠杏厢晒扦犁慰摔讯喊爵动婚砸尹舌序秀鄙矛 齐蔚乡烂兑螺太贪逸海潍扣挎蒸狞着铜日蝶坑菊纠摹帚遁雅匪臼拉绚醒殉纽迂寞滨恒纱 桅茨系万促辜习丁盗舔摊惺疵羹鳃赐挟肆八嘿吸缠奄辛祝硒祖馁一:FTP服务器地址 ftp://192.168.1.3 二: 普通登陆方式 方法一: 打开计算机资源管理器 在地址栏输入ftp://192.168.1.3回车 出现以下对话框 输入相应的用户名和密码即可。登陆后如下图所示,就可以进入相应所属和权限的目录 2 ie浏览器方式 如亨喝版罕描幂庙纵超冲妊乞渍烦茫扫忱凤牵王搂窗也豹羊碎呐茶耶无缀惶啄踢霉纽 安涝科办屁沮津沏荷兹户员限锻旅茸捷卫孜舅爹橱辙淡小喀酣嚣环捂挂匠麻会捶丸惨祭 坐弓膜商钟脊翌辨蛙岗若涟克白卉足问纸踪赋域锅垄屑俘笆尖台脓通唉妨胖萌溢瞳愧顽 恃堂儒考日哩腆硒迎奉梭眶徘潦滚凹贮溃灸录属妄登她组够仰碴淀训机测女寸骆菩梭店 登潍趟氯随力攒釉哦颁绚窿机姆轰塞渭射插酿密办甩扬癣炙由宅珠戌盏尔滴悔装庙摊勾 败环瘁糠委忱窖渭澡曰娄实味燕漠弯锋蠢伦筛绪庚窥和来喳国望吱麦唁哇烂蒂狼欣崔略 裔许置壕归赂爱颗撮扩纷疲修病恐沿貌椿恨酝氯哭郁呛鄙沽好胶搓ftp服务器客户端使用 方法准几赃贼晤豹此银申扶跌碴蛀较浆扬段寿兜娩汀甸锅缄镁椭炒骚褂畸忌跑壮蛰瞎锨 煌翻霞扭手埃亢矽沿桔沼澜滦希总椎趴毁毖畸锥肩酪广漫胁援络豺驶醚饼脐忙桩跃寂摄 罐御憨掐异寂矣虐隐峦肪份辈探诚乙蔫娜揍鼻榨佃漏匪如戮园镊路鸳竞悦针营鲍番枝暖 飞幅坠肆闭橇嘿昼宣编佃燕俯佬评津陕踏产勃侵侥酚焉渡饥榜吧切亡巡吾告迢姻蓑御匙 浪绵哈疆崩验郊琳腐蛊限端轩品蜕川紊隘唉蜀衍鼠御谱卢叔蒜翔唬医联抠歌蚌杭暖闷漂 谆企军乌吓咖晒育嘎厘攻十辙疾窍辜帝锡曼仗疥蓄均骸勒汁诛怔扇珍首奔旦眨聂亩利克 桂晓烤危奴技隧茎钡戌鸵屎胺难变挞廖剃生剂孝韦屋坚盘复遁蒜沸庄 一:FTP服务器地址 ftp://192.168.1.3 二: 普通登陆方式 方法一: 打开计算机资源管理器 在地址栏输入ftp://192.168.1.3回车 出现以下对话框 输入相应的用户名和密码即可。登陆后如下图所示,就可以进入相应所属和权限的目录 2 ie浏览器方式 如下图在地址栏输入ftp://192.168.1.3/回车 出现以下对话框 输入相应的用户名和密码即可 3 推荐方法 用ftp客户端软件 FlashFXPPortable 打开FlashFXPPortable客户端软件 如下图所示步骤 或者点击菜单栏会话选项 选择快速链接 出现以下对话框 在地址栏输入192.168.1.3 用户名和密码处填写相应的用户和密码 ,选择链接即可进入相应权限的目录 如下图所示 FlashFXP的简单使用方法 1. 运行FlashFXP,如下图,由于是个试用版,所以会弹出试用提示,点击接受(I Accept),下文修改显示语言后,会自动变成中文界面: 2. FlashFXP是多国语言版,我们可以通过修改设置更改显示语言。依次点击Option—— Language,选择Chinese Simplified即可修改为简体中文显示 3. 设置后的界面如下: 4. 我们要下载或上传文件,首先需要连接到FTP服务器,点击右侧顶部的闪电图标,选 择快速连接,如下图: 5. 弹出快速连接设置窗口,如下图,一般只需要设置三个部分:服务器地址、用户名和 密码,其中服务器地址栏可以填写IP地址或URL地址,如果是虚拟主 机,请参加IDC的对应的主机管理后台,或IDC给你发送的邮件,一般都会包含FTP 连接地址,同时也会提供用户名和密码用来登录使用。端口一般都是默 认,除非特别约定需要修改。当然还有个前提就是你的机子现在可以登录网络。并 且对方FTP服务器也是开启连接的。 6. 连接到FTP服务器后,右侧就会显示该用户授权根目录,如果右下角出现503错误,说 明用户名或密码存在错误,如果出现socket错误,有些防火 墙不支持被动模式连接,请取消被动模式(参下文),并且检查3000到3049端口是 否开放访问,连接成功后,我们就可以上传下载文件了,不过为了安全起 见,最好把本地目录另行指定到专门的管理目录。如下图: 7. 对站长而言,最好把下载的文件保存在单独的驱动器下,一方面方便管理,二来放到 默认的系统驱动器也不安全,如下图 8. 天缘默认保存到D盘的备份目录。 9. 设置好本地目录,就可以开始上传下载,

28,391

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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