关于 宝玉 ASP无组件上传类

190

我的疑问在附件中已经描述,希望高手们能下载测试一下,非常方便:


1,使用方法:将本附件中的压缩文件解压到网站根目录内的任意一个文件夹,即可测试效果。

2,问题:
     2-1,为全站需要,我必须保证所有文件都是UTF-8编码,但是现在所有文件都转为UTF-8编码后,出现无法上传中文,会出现乱码或报错;
     2-2,目前程序是将上传的每个图片文件信息(文件名,路径,大小等信息)独立分条写入数据库中,
             但我的目的是将所有上传文件分不同字段,只写入同一条记录。
 
       举例,我的目的是:一个产品名对应:规格说明书/图片1/图片2/图片3...图片5

              而现在的实际情况是:
                                  产品1,规格说明书/图片1
                                  产品1,规格说明书/图片2
                                  产品1,规格说明书/图片3
                                  ... ... ... ...
                                  产品1,规格说明书/图片5



谢谢您的热心指点,谢谢!

宝玉
我的建议是你用一个收费的或其他的,例如abcupload什么的

早睡早起身体好!
190
为什么呢,我觉得你这个上传类挺好用啊,用ANSI编码没问题挺好的。
最好的功能就是可以由用户指定上传文件的数量。
宝玉 #2
我的建议是你用一个收费的或其他的,例如abcupload什么的
190
已经用数组解决了一个问题:所有图片信息可以写到同一条上;
那么就剩下提交中文表单时产生乱码的问题了。
不知道 宝玉 有没好建议。我实在没辙了,做了好多UTF-8的声明,甚至在upload.asp里面class的数据流也做了charset声明,均无效。
宝玉 #2
我的建议是你用一个收费的或其他的,例如abcupload什么的
190
全站程序如附件:
lololo

参考一下

http://wenwen.soso.com/z/q216342462.htm

试试 gb2312,还有后端设定


另外,程序里面DoteyUpload是什么?

190
不能用gb2312,因为我的站点要给国外用户使用,必须全站UTF-8
你说的这个网址,我搜索到过,解决不了问题。
DoteyUpload是上传类,具体代码这里可看:
http://bbs.csdn.net/topics/390737713#post-396997096
lololo #7
参考一下 http://wenwen.soso.com/z/q216342462.htm 试试 gb2312,还有后端设定 另外,程序里面DoteyUpload是什么?
lololo
是不是在服务器上没权限,装不了上传组件?
国外用户用啥中文啊,还有这几个文件除了default,其他几个都是ansi格式,
190 #8
不能用gb2312,因为我的站点要给国外用户使用,必须全站UTF-8 你说的这个网址,我搜索到过,解决不了问题。 DoteyUpload是上传类,具体代码这里可看: http://bbs.csdn.net/topics/390737713#post-396997096
190
不会啊,我用编辑软件看都是UTF-8格式。
这个ASP无组件上传类的问题在于字符没定义,但是我不知道应该在哪里定义
lololo #9
是不是在服务器上没权限,装不了上传组件? 国外用户用啥中文啊,还有这几个文件除了default,其他几个都是ansi格式,
190
类文件单独放上来了:
宝玉
你抓包分析看看,用httpwatch或chrome的开发工具看看原始的post数据情况先,方便的话截个图上来看看http传输时上传的流。
我现在手头都没windows机器,要不然我真会帮你调试看看,现在就一个Mac没法运行asp!
说实话,这代码我03年左右写的,10年过去了,现在我自己都忘记的差不多了。

早睡早起身体好!
宝玉
另外提醒一下,你要检查一下是不是所有文件都是utf-8编码,包括用来上传的页面文件。
还有你可以试试把文件另存为 Utf-8+ 编码,sublime里面是utf-8 with BOM,有时候utf-8编码也不灵,需要把文件保存为utf-8+编码

早睡早起身体好!
190
这点我可以确认,确实是UTF-8 无bom格式。
因为我以前遇到过gbk转UTF-8的麻烦,所以特别注意这点。
HTTP抓包分析的我正在做,届时会把截图贴上来,麻烦你帮忙看看,谢谢
宝玉 #13
另外提醒一下,你要检查一下是不是所有文件都是utf-8编码,包括用来上传的页面文件。 还有你可以试试把文件另存为 Utf-8+ 编码,sublime里面是utf-8 with BOM,有时候utf-8编码也不灵,需要把文件保存为utf-8+编码
宝玉
我意思是你试试保存为 utf-8的有bom格式看看
190 #14
这点我可以确认,确实是UTF-8 无bom格式。 因为我以前遇到过gbk转UTF-8的麻烦,所以特别注意这点。 HTTP抓包分析的我正在做,届时会把截图贴上来,麻烦你帮忙看看,谢谢

早睡早起身体好!
190
用httpwatch检查一下,基本没什么发现:文件可以上传,就是遇到中文时,就乱码甚至写不进去数据库,打印那句SQL语句出来是这样:
insert into upfile_table(subject,details,oldname1,oldname2,oldname3,oldname4,oldname5,pic1,pic2,pic3,pic4,pic5) values ('寰楀埌','寰楀埌','QQ鐞冪.jpg',Null,Null,Null,Null,'UploadFiles/2014032202213983.jpg',Null,Null,Null,Null)
190
好,我马上试试。
宝玉 #15
我意思是你试试保存为 utf-8的有bom格式看看
190
宝玉 #12
你抓包分析看看,用httpwatch或chrome的开发工具看看原始的post数据情况先,方便的话截个图上来看看http传输时上传的流。 我现在手头都没windows机器,要不然我真会帮你调试看看,现在就一个Mac没法运行asp! 说实话,这代码我03年左右写的,10年过去了,现在我自己都忘记的差不多了。
请您查看附件,这是httpwatch抓包情况的截图:
190
宝玉 #15
我意思是你试试保存为 utf-8的有bom格式看看
转为有BOM格式也不行,乱码:
insert into upfile_table (subject,filename,n_filename,filepath,filesize) values ('閻ㄥ嫭鏂佹径褎鏂佹径D:\td_down\QQ閻炲啰顨?jpg
190
这楼怎么把页面撑破了?
190 #16
用httpwatch检查一下,基本没什么发现:文件可以上传,就是遇到中文时,就乱码甚至写不进去数据库,打印那句SQL语句出来是这样: insert into upfile_table(subject,details,oldname1,oldname2,oldname3,oldname4,oldname5,pic1,pic2,pic3,pic4,pic5) values ('寰楀埌','寰楀埌','QQ鐞冪.jpg',Null,Null,Null,Null,'UploadFiles/201403220221...
190
您没有WINDOWS机器没关系,我把程序上传到这里了,您可以直接看效果:
http://www.szzsrz.com/tmp/
代码在本例中有上传,您方便的话,麻烦帮我测试一下,需要修改代码,修改好通知我传上去再测试即可。
我实在没办法了,昨晚搞到4点多,尝试修改DoteyUPLOAD类,加入Charset属性并赋值为UTF-8,均未能解决问题
宝玉 #12
你抓包分析看看,用httpwatch或chrome的开发工具看看原始的post数据情况先,方便的话截个图上来看看http传输时上传的流。 我现在手头都没windows机器,要不然我真会帮你调试看看,现在就一个Mac没法运行asp! 说实话,这代码我03年左右写的,10年过去了,现在我自己都忘记的差不多了。
宝玉
好像你们设置的方法不对,应该是:
DoteyUpload_SourceData.Charset = "utf-8"
二你们是:
DoteyUpload_SourceData.CharsetEncoding = "utf-8"
190 #21
您没有WINDOWS机器没关系,我把程序上传到这里了,您可以直接看效果: http://www.szzsrz.com/tmp/ 代码在本例中有上传,您方便的话,麻烦帮我测试一下,需要修改代码,修改好通知我传上去再测试即可。 我实在没办法了,昨晚搞到4点多,尝试修改DoteyUPLOAD类,加入Charset属性并赋值为UTF-8,均未能解决问题

早睡早起身体好!
190
恩,这个原始的是错了。
我改了的,刚才给您的那测试网址上的就是改了以后才传上去的,不改根本通不过测试。
宝玉 #22
好像你们设置的方法不对,应该是: DoteyUpload_SourceData.Charset = "utf-8" 二你们是: DoteyUpload_SourceData.CharsetEncoding = "utf-8"
宝玉
注意有至少两个地方。从http上传来看,数据是正常,问题还是出在处理数据的地方。
我还是建议你使用abcupload好了
http://www.websupergoo.com/abcupload-1.htm
或者这个:http://www.motobit.com/help/scptutl/upload.asp
190 #23
恩,这个原始的是错了。 我改了的,刚才给您的那测试网址上的就是改了以后才传上去的,不改根本通不过测试。

早睡早起身体好!
宝玉
问题可能出在 BinaryToString 函数
换成这个:
Function BinaryToString(body)
if lenb(body)=0 then
BytesToBstr=""
exit function
end if
dim mystream
set mystream=server.createobject("adodb.stream")
mystream.type=2
mystream.mode=3
mystream.open
mystream.writetext body
mystream.position=0
mystream.charset="UTF-8"
mystream.position=2
bstr=mystream.readtext()
mystream.close
set mystream=nothing
BinaryToString=bstr
End Function

早睡早起身体好!
190
牛人,你太牛了!
确实是这个问题,现在解决了,多谢多谢!!!!!
宝玉 #25
问题可能出在 BinaryToString 函数
换成这个:
Function BinaryToString(body)
if lenb(body)=0 then
BytesToBstr=""
exit function
end if
dim mystream
set mystream=server.createobject("adodb.stream")
mystream.type=2
mystream.mode=3
mystream.open
mystream.writetext body
mystream.position=0
mystream.charset="UTF-8"
mystream.position=2
bstr=mystream.readtext()
mystream.close
set mystream=nothing
BinaryToString=bstr
End Function
人,能学会多少东西?
虽然学的不是计算机,也不懂程序,不过看了帖子,发现宝玉果然很牛掰啊

暗爽是一种至高境界