none
如何绕过web服务器直接上传文件到ftp服务器 RRS feed

  • 问题

  • 大家好。

    我想直接在我的ASPX中选择一个文件,然后直接上传到Ftp服务器,而不通过Web服务器。因为Web服务器在和Ftp服务器在不同的地方。
    请问有什么好的办法吗?或者如何实现?请各位大虾给点思路?如果不做成activex插件是否可以实现?谢谢

    2012年11月15日 10:57

答案

  • ASPX中选择一个文件?那就是说从Web服务器上选择文件,既然是通过Web服务器的选择,怎么能不通过Web服务器提交呢?除非你在FTP服务器上也设置一个接收文件上传的WEB服务。

    简单思路:

    1. ASPX页面表单请求到你WEB服务器上的接收接口,选择文件后点击上传,直接提交到你FTP服务器上。
    2. FTP服务器上接收时候做个来源的判断,如果是非法调用的话直接阻止。
    3. 上传文件完成后,回调你网站Web服务器,返回上传文件的路径和文件名。


    www.willin.org

    • 已建议为答案 Willin Wang 2012年11月16日 2:06
    • 已标记为答案 Star-Puppy 2012年11月17日 5:18
    2012年11月16日 2:05

全部回复

  • ASPX中选择一个文件?那就是说从Web服务器上选择文件,既然是通过Web服务器的选择,怎么能不通过Web服务器提交呢?除非你在FTP服务器上也设置一个接收文件上传的WEB服务。

    简单思路:

    1. ASPX页面表单请求到你WEB服务器上的接收接口,选择文件后点击上传,直接提交到你FTP服务器上。
    2. FTP服务器上接收时候做个来源的判断,如果是非法调用的话直接阻止。
    3. 上传文件完成后,回调你网站Web服务器,返回上传文件的路径和文件名。


    www.willin.org

    • 已建议为答案 Willin Wang 2012年11月16日 2:06
    • 已标记为答案 Star-Puppy 2012年11月17日 5:18
    2012年11月16日 2:05
  • 感谢您的耐心回答,是否能提供一个参考的例子?谢谢
    2012年11月17日 5:18
  • aspx 里边一般默认是一个 form id="form1" runat="server" method="post",

    手写一个form 不加runat, action="网站B的某个页面",然后传递一些数据。Page_load 里加上判断Refferer和参数是否为空,简单的测试一下表单。然后再测试文件POST就行了。不知道是否存在跨域问题,如果有的话,用iframe嵌套这个页面好了


    www.willin.org

    2012年11月17日 9:38