本文发表在 rolia.net 枫下论坛上传用的网站是第三方的,asp作的。server的代码是不可能看到的。我没有别的选择。
本来是两个妹妹天天手动上传文件的。可manager非要改成自动的。
不过我已经解决这个问题了。用的还是比较trick的方法。放弃用webbrowser post的方法了。http的头文件根本不知道如何设置。而且网站的结构也不是很清楚,根本无从下手。试了好几天还是不行。网上也没有比较好的资源可以参考。
我这个trick的方法也是自己想出来的。网上有不少类似的方法,可都不好用。我借鉴了一些经验,得到现在这个solution。目前对于这个网站是工作的。因为是模拟键盘操作,所以可能有很大的局限性,还好我用的这个网站不是经常变动和更新。
关键部分只有3行,两三个函数而已。唉花了我3天时间。最后还是谢谢大家的帮助和回复!
我把这部分代码贴出来。注意comments。希望不会造成什么安全隐患。想自己也没那么牛。如果真有这方面的问题,望大家转载,应用时小心些。或请斑竹删除这部分。
webrowser1.Document.GetElementById("upload").Focus()
'Trick Part!!!
'For security reason, MS do not allow to upload file automatically from <input type=file>
'Here, I simulate keyboard action to input the file directory and click the submit button.
'Get focus to input
'Focus() cannot really get the focus on the upload input box. Use Tab key to get focus
SendKeys.Send("{tab 2}")
SendKeys.Send("+{tab 2}")
'Simulate keyboard input
SendKeys.Send("C:\test\www.txt")
'Important part!!!
'The submit button only can be press manually(simulate keyboard to do it)
'If use system function to click the submit button, for example HTTPElement.InvokeMember("click")
'The file cannot be uploaded.
SendKeys.Send("{tab 2}")
SendKeys.Send("{ENTER}")更多精彩文章及讨论,请光临枫下论坛 rolia.net
本来是两个妹妹天天手动上传文件的。可manager非要改成自动的。
不过我已经解决这个问题了。用的还是比较trick的方法。放弃用webbrowser post的方法了。http的头文件根本不知道如何设置。而且网站的结构也不是很清楚,根本无从下手。试了好几天还是不行。网上也没有比较好的资源可以参考。
我这个trick的方法也是自己想出来的。网上有不少类似的方法,可都不好用。我借鉴了一些经验,得到现在这个solution。目前对于这个网站是工作的。因为是模拟键盘操作,所以可能有很大的局限性,还好我用的这个网站不是经常变动和更新。
关键部分只有3行,两三个函数而已。唉花了我3天时间。最后还是谢谢大家的帮助和回复!
我把这部分代码贴出来。注意comments。希望不会造成什么安全隐患。想自己也没那么牛。如果真有这方面的问题,望大家转载,应用时小心些。或请斑竹删除这部分。
webrowser1.Document.GetElementById("upload").Focus()
'Trick Part!!!
'For security reason, MS do not allow to upload file automatically from <input type=file>
'Here, I simulate keyboard action to input the file directory and click the submit button.
'Get focus to input
'Focus() cannot really get the focus on the upload input box. Use Tab key to get focus
SendKeys.Send("{tab 2}")
SendKeys.Send("+{tab 2}")
'Simulate keyboard input
SendKeys.Send("C:\test\www.txt")
'Important part!!!
'The submit button only can be press manually(simulate keyboard to do it)
'If use system function to click the submit button, for example HTTPElement.InvokeMember("click")
'The file cannot be uploaded.
SendKeys.Send("{tab 2}")
SendKeys.Send("{ENTER}")更多精彩文章及讨论,请光临枫下论坛 rolia.net