ASP.NET解决方案中不同项目间获取文件路径的问题咨询
跨项目图片上传的客户端实现代码
我当前的解决方案包含两个项目:一个API服务端项目,以及一个负责向该API发送数据的客户端项目。下面是客户端项目控制器中,尝试将上传图片保存到API项目指定文件夹的代码片段:
// 获取上传图片的文件名 pic = Path.GetFileName(file.FileName); // 拼接API项目中目标文件夹的完整路径 path = Path.GetFullPath(Path.Combine(Server.MapPath("~"), @"WebApi1/Employee/")); // 组合出图片要保存的完整路径 path2 = Path.Combine(path, Path.GetFileName(pic)); // 尝试将上传的图片写入API项目的文件夹 file.SaveAs(path2); // 后续MemoryStream处理的代码片段 using (MemoryStream ms = new MemoryStream()) { file.InputStream.CopyTo(ms); // ... 此处省略后续的流处理逻辑 }
几点需要注意的地方:
- 直接操作跨项目文件路径的局限性:这种方式只适合本地开发时两个项目在同一文件系统的场景,如果后续API和客户端部署在不同服务器、不同应用池下,这种本地路径写入的方式会直接失效,更合理的做法是通过调用API的文件上传接口来完成操作。
- 路径有效性验证:在执行
SaveAs之前,最好先判断path对应的目录是否存在,如果不存在需要先创建目录,否则会抛出文件未找到的异常。
内容的提问来源于stack exchange,提问作者Cesar Augusto
相关产品推荐
相关产品推荐

