怎样把上传的文件存到另一个fileserver上而不存在webserver上

时间:2022-09-30 23:53:54
string fn = System.IO.Path.GetFileName(File1.PostedFile.FileName);
string SaveLocation = Server.MapPath("D:\\upload2") + "\\" +  fn;
try
{
File1.PostedFile.SaveAs(SaveLocation);
Response.Write("The file has been uploaded.");
}
catch ( Exception ex )
{
Response.Write("Error: " + ex.Message);
}
在上面的代码中,用Server.MapPath()可以指定上传文件的路径在webserver上,怎么把上传的文件存到另一个fileserver

20 个解决方案

#1


应该可以在fileserver里共享一个文件夹,开写权限
然后可以写成下面这样:
savelocation = @"//192.168.0.1/file direction"

#2


1。在文件服务器上发布一个 web service 同过这个服务上传文件,
2。使用内切桢。

#3


string SaveLocation = @"//172.16.200.143/C:/uplode/images/"+  fn;
看看我写的上边这个对不对,怎么存不到这个路径里边,写权限已经开了

#4


zhzuo(秋枫) 
就是不想在存文件的机器上发布web service阿

#5


如果你共享的是images的话,就直接写
@"//172.16.200.143/images/"

#6


我事了,提示:
Error: 登录失败: 未知的用户名或错误密码
怎么加用户名和密码

#7


如果需要用户名和密码的话,应该会自己弹出一个提示输入框的呀

#8


哦,看来瞎菜了,他没弹出提示输入框呀

#9


好像这样传是不可以的,因为Server.MapPath这个方法只适用于对于WEB服务器的操作。如果要用这个方法可以有以下办法。

1.把文件服务器设置为WEB服务器,文件传到服务器的WEB文件夹下。
2.在原来的web服务器设置一个虚拟目录,路径指向那台文件服务器。

应该是这样的,原来在做一个下载站点时候也碰到楼主的问题。好像是因为Web服务器配置的问题,好久以前的事了,不敢确定。

#10


想指定将fn存到D:upload2文件加中,下面的写发对吗?要不对请给我改一改
string SaveLocation = Server.MapPath("D:\\upload2") + "\\" +  fn;

#11


想指定将fn存到D:\upload2文件加中,下面的写发对吗?要不对请给我改一改
string SaveLocation = Server.MapPath("D:\\upload2") + "\\" +  fn;

#12


virtual path到底是怎么回事啊,谁能给个例子

#13


是IIS的设置,我你现在一台服务器上调,Server.MapPath是应该无法把文件保存在非WEB目录下面的。因此要用这个方法操作其他盘的目录,就必须要在IIS上配置虚拟站点.也就是说把非WEB服务器主目录的目录作为WEB目录来访问.如果这个不会就没办法了,要发解图了.然后就OK了.
因此两台服务器的时候只要把只要把虚拟站点的路径指向你的File服务器就可以了.

如果你想用Server.MapPath实现上传的话,不开放WEB服务是不行的.

#14


那我现在不用Server.MapPath了,有什么方法可以实现我的目的,即怎么把上传的文件存到另一个fileserver,而不是存到webserver.

用string SaveLocation = @"//172.16.200.143/images/" +  fn;可以不可以,我用这个了不行,提示是:登录失败: 未知的用户名或错误密码。谁要知道怎么改请给几行代码

#15


还有没别的思路可以做这件事???

#16


在定一下

#17


给你个大概吧,
 // 这个是我用的时候获得配置文件里的文件路径
string ServerPath = server.GetHttpUpUrl(); 
  
WebRequest myre;

myre = WebRequest.Create(ServerPath); 
WebClient UpFile = new WebClient();
UpFile.Credentials = CredentialCache.DefaultCredentials;
Stream stream = UpFile.OpenWrite(ServerPath, "PUT");

//arrByte里保存的是你要写入的数据,byte[]型
stream.Write(arrByte, 0, readCnt);

到最后记住流的关闭

#18


哦,这个我好象也没测过把文件传到另外的服务器
可能不行,你试试吧

#19


如果你的webserver和fileserver属于同一个域,那么用目录服务就好办了。

#20


用目录的重定向。

#1


应该可以在fileserver里共享一个文件夹,开写权限
然后可以写成下面这样:
savelocation = @"//192.168.0.1/file direction"

#2


1。在文件服务器上发布一个 web service 同过这个服务上传文件,
2。使用内切桢。

#3


string SaveLocation = @"//172.16.200.143/C:/uplode/images/"+  fn;
看看我写的上边这个对不对,怎么存不到这个路径里边,写权限已经开了

#4


zhzuo(秋枫) 
就是不想在存文件的机器上发布web service阿

#5


如果你共享的是images的话,就直接写
@"//172.16.200.143/images/"

#6


我事了,提示:
Error: 登录失败: 未知的用户名或错误密码
怎么加用户名和密码

#7


如果需要用户名和密码的话,应该会自己弹出一个提示输入框的呀

#8


哦,看来瞎菜了,他没弹出提示输入框呀

#9


好像这样传是不可以的,因为Server.MapPath这个方法只适用于对于WEB服务器的操作。如果要用这个方法可以有以下办法。

1.把文件服务器设置为WEB服务器,文件传到服务器的WEB文件夹下。
2.在原来的web服务器设置一个虚拟目录,路径指向那台文件服务器。

应该是这样的,原来在做一个下载站点时候也碰到楼主的问题。好像是因为Web服务器配置的问题,好久以前的事了,不敢确定。

#10


想指定将fn存到D:upload2文件加中,下面的写发对吗?要不对请给我改一改
string SaveLocation = Server.MapPath("D:\\upload2") + "\\" +  fn;

#11


想指定将fn存到D:\upload2文件加中,下面的写发对吗?要不对请给我改一改
string SaveLocation = Server.MapPath("D:\\upload2") + "\\" +  fn;

#12


virtual path到底是怎么回事啊,谁能给个例子

#13


是IIS的设置,我你现在一台服务器上调,Server.MapPath是应该无法把文件保存在非WEB目录下面的。因此要用这个方法操作其他盘的目录,就必须要在IIS上配置虚拟站点.也就是说把非WEB服务器主目录的目录作为WEB目录来访问.如果这个不会就没办法了,要发解图了.然后就OK了.
因此两台服务器的时候只要把只要把虚拟站点的路径指向你的File服务器就可以了.

如果你想用Server.MapPath实现上传的话,不开放WEB服务是不行的.

#14


那我现在不用Server.MapPath了,有什么方法可以实现我的目的,即怎么把上传的文件存到另一个fileserver,而不是存到webserver.

用string SaveLocation = @"//172.16.200.143/images/" +  fn;可以不可以,我用这个了不行,提示是:登录失败: 未知的用户名或错误密码。谁要知道怎么改请给几行代码

#15


还有没别的思路可以做这件事???

#16


在定一下

#17


给你个大概吧,
 // 这个是我用的时候获得配置文件里的文件路径
string ServerPath = server.GetHttpUpUrl(); 
  
WebRequest myre;

myre = WebRequest.Create(ServerPath); 
WebClient UpFile = new WebClient();
UpFile.Credentials = CredentialCache.DefaultCredentials;
Stream stream = UpFile.OpenWrite(ServerPath, "PUT");

//arrByte里保存的是你要写入的数据,byte[]型
stream.Write(arrByte, 0, readCnt);

到最后记住流的关闭

#18


哦,这个我好象也没测过把文件传到另外的服务器
可能不行,你试试吧

#19


如果你的webserver和fileserver属于同一个域,那么用目录服务就好办了。

#20


用目录的重定向。

#21