欢迎分享,转载请注明来源:夏雨云
我用映射网络盘的形式,可是程序无法将文件保存到网络映射盘上.假设有服务器A是web服务器,文件要通过A服务器上的web程序上传到B上面1、在B上面共享一个文件夹,记得设置好权限,给某个用户有写入的权限2、在A服务器上的网站下面建立一个虚拟目录,虚拟目录的指向改为另外一台计算机上的共享,输入刚才设定的用户帐号和密码3、在A服务器上传的时候,通过server.mappath("虚拟目录")名来获取上传地址4、解决权限问题,只有在建立信任的基础上,你才能向B服务器上传文件,建议在Global.asax中加载,这样网站一运行就建立了信任,不用每次都去建立。建立信任的语句:System.Diagnostics.Process.Start("net.exe", "use \\\\B服务器的IP\\共享文件夹 \"B服务器上的密码\" /user:\"B服务器上的用户名\"")上面提到的B服务器上的用户是指能写入那个共享文件夹的用户!记得你那个用户要能运行net.exe文件的权限!简单的测试虚拟目录设置是否正确!假设A是你web站点的服务器 B是你要上传文件的服务器2、 在A服务器web站点下面建立一个虚拟目录,默认加虚拟目录的时候是没得选择其他服务器的共享文件夹的,你先随便选择一个本地的路径,建立好之后,点击该 虚拟目录的属性,在更改本地路径的上面,有3个选择,你选择“另一台计算机上的共享”,接着设置网络路径,格式是这样的:\\{服务器}\{共享名}, {服务器}用IP来代替,{共享名}就是那个upload文件夹,填好之后点击后面的“连接用户”,输入刚才在B服务器上用户test 和密码123456(当然,简单一点,你最好先测试一下,确定A服务器能访问B服务器共享的文件夹,如果A都不能访问B的共享,那你先解决这个问题先,测 试的方法很简单,在浏览器里输入\\B服务器的IP\upload,如果能输入用户和密码之后能看到你刚才随便建的那个文件,OK,共享是可以访问的)3、虚拟目录设置好了之后,你可以测试一下,在A的web站点下面通过程序获取一下虚拟目录的路径,如果是成功的,路径应该是服务器B的IP+upload文件夹。4、 接下来的工作就是上传文件了,这个时候你直接上传应该都是可以的,应该你刚才已经输入过访问B服务器upload的帐号和密码,也就是说A和B已经建立了 信任连接,不过如果你重启服务器,刚才建立的连接也就不存在了。所以在A服务器web站点的Global.asax文件里加载一句话,让A服务器站点启动 的时候就和B建立信任连接System.Diagnostics.Process.Start("net.exe", "use \\\\B服务器的IP\\upload \"123456\" /user:\"test\"")上面的语句就是建立信任连接的,放在global.asax的好处就是站点启动就建立连接,因为这种信任连接是可持续性的,不会象session一样过期,只有在重启A服务器的时候这种信任连接才会消失。不晓得你明白没有?不过我可以肯定,这个是可以实现的,因为我刚刚做过这块。{ } protected void Button1_Click(object sender, EventArgs e){if (this.filepost.PostedFile.FileName == ""){Response.Write("上传文件不能为空!")return}try{string Path = Server.MapPath("upload/")//设置服务器端路径string filePath = this.filepost.PostedFile.FileName//获取客户端实际路径string fileName = filePath.Substring(filePath.LastIndexOf("\\")+1)//获取文件名称string serverPath = Path + fileName//上传的文件保存到服务器端的路径System.Text.StringBuilder buider = new System.Text.StringBuilder()//上传的文件信息:可变字符串buider.Append("上传文件的类型:"+this.filepost.PostedFile.ContentType.ToString()+"")buider.Append("客户端文件地址:"+this.filepost.PostedFile.FileName+"")buider.Append("上传文件名称:"+fileName)buider.Append("上传文件的扩展名:"+filePath.Substring(fileName.LastIndexOf(".")+1))buider.Append("上传文件的大小:"+this.filepost.PostedFile.ContentLength/1024+"k"+"")if (System.IO.File.Exists(serverPath)){Response.Write("这个文件在服务器上已经存在,请不要重复上传!")return}string str = fileName.Substring(fileName.LastIndexOf(".")+1)//获取文件后缀名if (str == "jpg" || str == "rar" || str == "ppt"){Response.Write("对不起,该类型文件不能被上传!")return}if (this.filepost.PostedFile.ContentLength >2048){Response.Write("对不起,文件不能超过2K")return}this.filepost.PostedFile.SaveAs(serverPath)//上传保存文件
赞
(0)
打赏
微信扫一扫
支付宝扫一扫
常用的web服务器软件有哪些?
上一篇
2023-04-13
SAR 成像原理
下一篇2023-04-13
评论列表(0条)