当前位置:编程学习 > C#/ASP.NET >>

互联网地址如何下载内网的文件?

有两台服务器,一台服务器有内网IP和外网IP并部署了WEB系统,另外一台服务器是内网的并作为文件服务器。


现在通过外网域名访问系统后需要下载附件。
地址是:http://10.20.30.1/uploadfile/file20130526.doc

但是因为是域名访问,是没有权限访问10.20.30.1这台内网服务器的,那怎么才能下载文件呢?
要求两台服务器的功能不变,怎么可以实现下载的功能啊,请高手赐教! --------------------编程问答-------------------- 如果是asp.net mvc 我会写一个uploadfile的控制器,方法index,所有url都是www.xx.com/uploadfile/index/file20130526.doc
index方法可以WebClient("http://10.20.30.1/uploadfile/file20130526.doc");方式得到文件,然后直接返回 --------------------编程问答-------------------- WebClient.OpenRead() --------------------编程问答-------------------- 需要web服务器读取内网文件服务器,然后发给用户 --------------------编程问答-------------------- 通过 http://www.xxx.com/uploadfile/file20130526.doc 不就能访问了嘛。

这是互联网基本原理,因此你不用知道内部实现具体代码,也应该知道功能是如何访问的,这样才能用懂行人的url地址给底下人布置任务。

技术上再多说无关的,其实就会找到很荒唐的技术理由了。你需要的不是什么时髦技术,而是会提出设计来。 --------------------编程问答-------------------- 你在结合我的回复、跟你的问题,好好看看。你是不是只是没有理解“一层窗户纸”的问题? --------------------编程问答-------------------- 软件(业余)架构设计师,他是根据基本的架构原理来设计就行了。例如他可能写下这样的需求文档:


要求从互联网任何地方使用地址  http://www.xxx.com/app1/download?name=file20130526.doc&pass=p1234
来下载文档 file20130526.doc。这个文档是在内部网络某台服务器上的,外网服务器可以访问到。访问之前需要先由业务处理网页临时分配一个授权口令pass,这个口令必须在20秒钟内使用掉,否则这个下载url就会自动作废........


总之,一个设计师是从需求来设计的,而不是从底层堆砌技术的。而你的那种很小气的设计方式,我看出总是纠缠在底层的一些技术上,缺乏创意。或许你干什么设计工作都首先担心可行性问题。 --------------------编程问答-------------------- LZ的意思是通过访问外网的服务器
来达到下载内网文件的目的
找网管直接进入路由做端口映射吧。
--------------------编程问答-------------------- 用 Nginx(部署在内外双网卡机器上)做一下反向代理即可。

--------------------编程问答-------------------- 如果web服务器没有限制主机头,只要映射ip+port即可,否则就要用ls的办法了。 --------------------编程问答-------------------- 直接把内网文件服务器当做网站的一个虚拟目录来引入进来 --------------------编程问答-------------------- 既然是内网,再让是http无法访问的了
这个你绕住了
需要通过www制定统一下载接口,凡事通过www,均制定到10.20.30.1 --------------------编程问答--------------------
引用 10 楼 liuchaolin 的回复:
直接把内网文件服务器当做网站的一个虚拟目录来引入进来


+1
补充:.NET技术 ,  ASP.NET
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,