ASP無懼上傳類不能上傳中文雙引號文件及ASP函數InStr存在bug
近日發現eWebEditor V2.8 asp 版本上傳文件文件名不能包含中文雙引號,發現eWebEditor使用ASP“無懼上傳類 V1.2” 版本,在文件:upfile_class.asp
第92、93行:
?
'取得文件屬性 iFindStart = InStr (iFindEnd,sInfo,"filename=""",1)+10 iFindEnd = InStr (iFindStart,sInfo,"""",1)
?
該92行錯誤截取文件名。原因如下,見例子:
?
Dim SearchString, SearchChar, MyPos SearchString ="XXXX”pXXX""XP" ' String to search in. SearchChar = """" ' Search for "P". MyPos = Instr(2, SearchString, SearchChar, 1) ' A textual comparison starting at position 4. Returns 6. 'MyPos = Instr(1, SearchString, SearchChar, 0) ' A binary comparison starting at position 1. Returns 9. 'MyPos = Instr(SearchString, SearchChar) ' Comparison is binary by default (last argument is omitted). Returns 9. 'MyPos = Instr(1, SearchString, "W") ' A binary comparison starting at position 1. Returns 0 ("W" is not found). Response.Write MyPos
以上代碼打印出來的是5而不是10,即,查找英文的雙引號,卻在字符串中找到了位置5的中文雙引號,我認為這是vb腳本 Instr的一個bug
目前解決以上問題我還沒有想出辦法。暫時先讓使用者上傳附件時文件名或文件所在路徑里先不要有中文雙引號。
?
?
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
