C# 文件上传(另一台服务器的共享目录)

前言:

  相信很多小伙伴都做过很多简单的服务器上传文件,但是如何上传到另外一台服务器的共享目录下呢,在这篇文章教大家如何上传到服务器共享目录。

1.可以弄一个虚拟机当另外一台服务器把文件夹共享出来,创建文件及共享文件夹

创建一个文件夹叫SharedFolders - 右键文件夹属性 - 共享

 

 2.本机找到虚拟机的共享文件夹试图丢点文件进去看看是否成功

我的虚拟机IP是192.168.1.139,访问共享路径地址是\\192.168.1.139\SharedFolders

 

把我新建的Excel 文件丢到共享文件下看看是否成功,成功了就查看以下虚拟机的共享文件夹下是否有这个文件

 

3.然后我们写代码实现上传到虚拟机共享目录

using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Net;
using System.Net.Http;
using System.Web;
using System.Web.Http;

namespace ImportExcel.Api.Controllers
{
    public class FileController : ApiController
    {
        public void Upload()
        {
            HttpFileCollection files = HttpContext.Current.Request.Files;
            if (files.Count > 0)
            {
                HttpPostedFile file = files[0];
                //绝对路径
                string savePath = @"\\192.168.1.139\SharedFolders";
                //读取导入的文件类型
                var fileExt = file.FileName.Substring(file.FileName.LastIndexOf('.')).ToLower();
                //if(fileExt == "xxx") 判断类型
                var fileName = Guid.NewGuid();
                string xlsxFileName = fileName + fileExt;
                file.SaveAs(savePath + "\\" + xlsxFileName);
            }
        }
    }
}

小编这边使用Postman调试,看看是否成功,先F5运行项目进行调试

 没报错应该是成功了去共享目录看看是否有刚才上传的docx文件

本地是可以了然后我们把他部署到IIS,在进行上传看看

 

 部署好了使用Postman 请求 5589这个端口

你会发现报错了,这是为什么呢,其实是权限的问题

1. 在本机和虚拟机添加一个同样的用户:TEST

2.在虚拟机中设置共享文件夹的权限

 3.把IIS的程序池标识改为自定义账户

 

 

 4.再次通过Postman调试,无返回东西就去看虚拟机的共享目录是否存在文件

 

额,小编这次没使用虚拟目录不知道为啥成了!

参考文章:https://www.cnblogs.com/guangpeng/archive/2013/04/09/3009600.html

参考文章:https://www.cnblogs.com/tdws/p/6231308.html

 

posted @ 2020-06-15 16:48  糯米雪梨  阅读(2644)  评论(1编辑  收藏  举报