我想做一个通过winform把文件上传到IIS服务器(IIS服务器部署的一个ASP.NET程序),然后IIS服务器会把文件保存到一台计算机上,把文件的详细信息保存到另一台计算机上。请问我把文件如何上传到IIS服务器,然后IIS服务器接到文件如何自动去处理呢?
最简单的方法:
1,建立一个 Asp.Net 应用程序项目;
2,添加一个 FileManager.aspx 页面,在 Page_Load 中通过 Reqeust.Files 获取收到的文件,然后 SaveAs 到指定磁盘路径;
3,在 WinForm 客户端中,使用 WebClient.UploadFile 上传文件;
谢谢你回复,我再问一下,我上传到IIS服务器如何触发我的处理程序呢,需要写个监听吗,或者怎么触发呢?
@朝阳丶李森: 把网站部署到IIS,在 Page_Load里写你的处理逻辑。
@朝阳丶李森: 我上传到IIS服务器如何触发我的处理程序呢,需要写个监听吗
完全没有必要的
1.用FTP上传到IIS目录,见:http://www.open-open.com/lib/view/open1332167830781.html 的Upload方法。
或楼上的方法
2.在网站Global.asx的Application_Start方法中,使用FileSystemWatcher对上传目录进行监听,FileSystemWatcher用法见:http://technet.microsoft.com/zh-cn/magazine/system.io.filesystemwatcher.notifyfilter(VS.90).aspx。
谢谢,有没有其他的方法呢?
@朝阳丶李森:
用一楼那样就可以了,最简单。
保存文件的时候就可以进行处理了啊,还要触发什么。。
@向往-SONG: 嗯,谢谢你们,今晚我先做个例子试下。有问题在来请教你们。帖子暂时放放,等解决了问题再接。
楼主的意思:文件放一个电脑A上、文件信息放到另一个电脑B上(不知道是用文件保存还是数据库保存?)、再加上文件上传操作的客户端C,一共三个电脑。
方法1:分别在A和B上部署webservice,在A的webservice方法中,执行文件保存操作,即可保存到A电脑上,再B的websevice方法中执行文件保存或者数据库保存,C执行程序调用两个WEBSERVICE,传递相应的文件(文件流信息)和文件信息。
方法2:在A和B每台电脑上部署一个FTP和IIS自动执行程序。FTP用于接收C客户端传递的文件信息,IIS程序定时扫描FTP文件信息,执行相应的动作。
如果楼主B电脑上是用数据库保存信息的,就稍微简单些,直接通过C远程访问数据库就行了,只需要在A电脑上执行以上的方法。
嗯,谢谢你的帮助,是这个意思,不过你还少说了一个电脑,假设 电脑A是客户端,B是一个IIS部署了一个ASP.NET程序的服务器,现在要从A电脑把文件上传到B,在B电脑上通过IIS部署的ASP.NET程序把文件流分析出来,文件保存到C电脑的MongoDB里,文件信息保存到D电脑的SQLServer里面,我现在的问题就是不知道怎么做这个B电脑IIS中部署的这个ASP.NET程序?
@朝阳丶李森: 那就是把我上面说的A电脑换成你的C电脑就行了,B电脑上的IIS就以一般的ASP.NET程序了,它调用C两台电脑端的Webservice,把文件流传递给C,C端的Webservice负责解析保存。然后B端远程连接D的数据库,把信息保存进去。
@清明雨上: 嗯,谢谢。A电脑换成C电脑? A是客户端 A只可以通过B(IIS部署的ASP.NET程序)来向 C和D两台电脑分别保存文件。
@朝阳丶李森: 对的,我第一次回复的时候把A当做部署程序的服务器了。