广告
返回顶部
首页 > 资讯 > 后端开发 > ASP.NET >ASP.NET 上传文件到共享文件夹的示例
  • 673
分享到

ASP.NET 上传文件到共享文件夹的示例

2024-04-02 19:04:59 673人浏览 独家记忆
摘要

目录上传文件代码  WEB.config   工具方法    常量  具体上传文件代码创建共享文件夹参考资料 上传文件代码   web.config  <!--上

创建共享文件夹参考资料

上传文件代码

  web.config 


    <!--上传文件配置,UploadPath值一定是服务器ip,内网ip最好-->
    <add key="UploadPath" value="\\172.21.0.10\File" />
    <add key="DownloadPath" value="Http://x.x.x.x:80/" />
    <add key="UserName" value="ShareUser" />
    <add key="PassWord" value="P@ssw0rd" />

  工具方法  


public static string GetConfigString(string key, string @default = "")
        {
            return ConfigurationManager.AppSettings[key] ?? @default;
        }

    /// <summary>
    /// 根据文件名(包含文件扩展名)获取要保存的文件夹名称
    /// </summary>
    public class FileHelper
    {
        /// <summary>
        /// 根据文件名(包含文件扩展名)获取要保存的文件夹名称
        /// </summary>
        /// <param name="fileName">文件名(包含文件扩展名)</param>
        public static string GetSaveFolder(string fileName)
        {
            var fs = fileName.Split('.');
            var ext = fs[fs.Length - 1];
            var str = string.Empty;
            var t = ext.ToLower();
            switch (t)
            {
                case "jpg":
                case "jpeg":
                case "png":
                case "gif":
                    str = "images";
                    break;
                case "mp4":
                case "mkv":
                case "rmvb":
                    str = "video";
                    break;
                case "apk":
                case "wgt":
                    str = "app";
                    break;
                case "ppt":
                case "pptx":
                case "doc":
                case "docx":
                case "xls":
                case "xlsx":
                case "pdf":
                    str = "file";
                    break;
                default:
                    str = "file";
                    break;
            }

            return str;
        }
    }

    /// <summary>
    /// 记录日志帮助类
    /// </summary>
    public class WriteHelper
    {
        public static void WriteFile(object data)
        {
            try
            {
                string path = $@"C:\Log\";
                var filename = $"Log.txt";
                if (!Directory.Exists(path))
                    Directory.CreateDirectory(path);
                TextWriter tw = new StreamWriter(Path.Combine(path, filename), true); //true在文件末尾添加数据

                tw.WriteLine($"----产生时间:{DateTime.Now:yyyy-MM-dd HH:mm:ss}---------------------------------------------------------------------");

                tw.WriteLine(data.ToJSON());
                tw.Close();
            }
            catch (Exception e)
            {

            }
        }
    }

  常量


/// <summary>
    /// 文件上传配置项
    /// </summary>
    public class FileUploadConst
    {
        /// <summary>
        /// 上传地址
        /// </summary>
        public static string UploadPath => ConfigHelper.GetConfigString("UploadPath");

        /// <summary>
        /// 文件访问/下载地址
        /// </summary>
        public static string DownloadPath => ConfigHelper.GetConfigString("DownloadPath");

        /// <summary>
        /// 访问共享目录用户名
        /// </summary>
        public static string UserName => ConfigHelper.GetConfigString("UserName");

        /// <summary>
        /// 访问共享目录密码
        /// </summary>
        public static string Password => ConfigHelper.GetConfigString("Password");
    }

  具体上传文件代码


/// <summary>
        /// 上传文件到共享文件夹
        /// </summary>
        [HttpPost, Route("api/Upload/UploadAttachment")]
        [AllowAnonymous]
        public ServiceResponse<UploadRespModel> UploadAttachment()
        {
            var viewModel = new UploadRespModel();
            var code = 200;
            var msg = "上传失败!";

            var path = FileUploadConst.UploadPath; //@"\\172.16.10.130\Resource";
            var s = connectState(path, FileUploadConst.UserName, FileUploadConst.Password);

            if (s)
            {
                var filelist = HttpContext.Current.Request.Files;
                if (filelist.Count > 0)
                {
                    var file = filelist[0];
                    var fileName = file.FileName;
                    var blobName = FileHelper.GetSaveFolder(fileName);
                    path = $@"{path}\{blobName}\";

                    fileName = $"{DateTime.Now:yyyyMMddHHmmss}{fileName}";

                    //共享文件夹的目录
                    var theFolder = new DirectoryInfo(path);
                    var remotePath = theFolder.ToString();
                    Transport(file.InputStream, remotePath, fileName);

                    viewModel.SaveUrl = $"{blobName}/{fileName}";
                    viewModel.DownloadUrl = PictureHelper.GetFileFullPath(viewModel.SaveUrl);

                    msg = "上传成功";
                }
            }
            else
            {
                code = CommonConst.Code_OprateError;
                msg = "链接服务器失败";
            }

            return ServiceResponse<UploadRespModel>.SuccessResponse(msg, viewModel, code);
        }

        /// <summary>
        /// 连接远程共享文件夹
        /// </summary>
        /// <param name="path">远程共享文件夹的路径</param>
        /// <param name="userName">用户名</param>
        /// <param name="passWord">密码</param>
        private static bool connectState(string path, string userName, string passWord)
        {
            bool Flag = false;
            Process proc = new Process();
            try
            {
                proc.StartInfo.FileName = "cmd.exe";
                proc.StartInfo.UseshellExecute = false;
                proc.StartInfo.RedirectStandardInput = true;
                proc.StartInfo.RedirectStandardOutput = true;
                proc.StartInfo.RedirectStandardError = true;
                proc.StartInfo.CreateNoWindow = true;
                proc.Start();
                string dosLine = "net use " + path + " " + passWord + " /user:" + userName;
                WriteHelper.WriteFile($"dosLine:{dosLine}");
                proc.StandardInput.WriteLine(dosLine);
                proc.StandardInput.WriteLine("exit");
                while (!proc.HasExited)
                {
                    proc.WaitForExit(1000);
                }

                string errORMsg = proc.StandardError.ReadToEnd();
                proc.StandardError.Close();
                WriteHelper.WriteFile($"errormsg:{errormsg}");
                if (string.IsNullOrEmpty(errormsg))
                {
                    Flag = true;
                }
                else
                {
                    throw new Exception(errormsg);
                }
            }
            catch (Exception ex)
            {
                WriteHelper.WriteFile(ex);
                throw ex;
            }
            finally
            {
                proc.Close();
                proc.Dispose();
            }

            return Flag;
        }

        /// <summary>
        /// 向远程文件夹保存本地内容,或者从远程文件夹下载文件到本地
        /// </summary>
        /// <param name="inFileStream">要保存的文件的路径,如果保存文件到共享文件夹,这个路径就是本地文件路径如:@"D:\1.avi"</param>
        /// <param name="dst">保存文件的路径,不含名称及扩展名</param>
        /// <param name="fileName">保存文件的名称以及扩展名</param>
        private static void Transport(Stream inFileStream, string dst, string fileName)
        {
            WriteHelper.WriteFile($"目录-Transport:{dst}");
            if (!Directory.Exists(dst))
            {
                Directory.CreateDirectory(dst);
            }

            dst = dst + fileName;

            if (!File.Exists(dst))
            {
                WriteHelper.WriteFile($"文件不存在,开始保存");
                var outFileStream = new FileStream(dst, FileMode.Create, FileAccess.Write);

                var buf = new byte[inFileStream.Length];

                int byteCount;

                while ((byteCount = inFileStream.Read(buf, 0, buf.Length)) > 0)
                {
                    outFileStream.Write(buf, 0, byteCount);
                }
                WriteHelper.WriteFile($"保存完成");
                inFileStream.Flush();

                inFileStream.Close();

                outFileStream.Flush();

                outFileStream.Close();
            }
        }

以上就是asp.net 上传文件到共享文件夹的示例的详细内容,更多关于ASP.net 上传文件的资料请关注编程网其它相关文章!

--结束END--

本文标题: ASP.NET 上传文件到共享文件夹的示例

本文链接: https://www.lsjlt.com/news/123444.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • ASP.NET 上传文件到共享文件夹的示例
    目录上传文件代码  web.config   工具方法    常量  具体上传文件代码创建共享文件夹参考资料 上传文件代码   web.config  <!--上...
    99+
    2022-11-12
  • Win7如何找到默认共享文件夹及关闭默认的共享文件夹
      当你还是菜鸟时,连接的是公司的局域网,会经常发现有人不用通过网络邻居就轻易拿走你的文件,当然,实际上它是通过网络邻居我们自己不知道而已。不过,在Windows7系统中,你就无法轻易找到网上邻居了,它改名叫&ldquo...
    99+
    2023-06-06
    Win7 共享文件夹
  • ASP.NET 上传文件导入Excel的示例
    目录前言代码实战具体的xml文件具体的Excel模板前言   本文对应的场景是导入Excel数据,Excel对应的字段都配置在xml文件中。截图如下: 代码实战   工具类  ...
    99+
    2022-11-12
  • 虚拟机找不到共享文件夹
    创建windows与ubuntu系统之间的共享文件夹方法   进入虚拟机,在虚拟机工作站页面最上面的窗口栏中按以下顺序设置 虚拟机(M)-> 设置 -> 选项 -> 共享文件夹  ---文件夹共享->总是启用                ...
    99+
    2023-09-02
    linux 运维 服务器
  • android文件上传示例分享(android图片上传)
    主要思路是调用系统文件管理器或者其他媒体采集资源来获取要上传的文件,然后将文件的上传进度实时展示到进度条中。 主Activity 代码如下:package com.guoto...
    99+
    2022-06-06
    示例 Android
  • C#服务器NFS共享文件夹搭建与上传图片文件的实现
    目录nfs共享文件夹实现步骤安装NFS组件(如果已安装略过)在源服务器建立nfs文件夹共享使用net dos命令C#Windows server2016服务器搭建NFS共享文件夹与C...
    99+
    2022-11-13
  • MobaXterm上传下载文件、文件夹到服务器上
      首先通过SSH与服务器建立连接,不懂的可查阅相关资料,CSDN里有很多介绍。 上传下载文件 可以在命令输入窗口,无需输入命令,按ctrl单击的同时鼠标右键出现以下左图,选择receive file using Z-modem或者send...
    99+
    2023-08-31
    linux
  • 解决vmware上Ubuntu共享文件夹的问题
    目录解决vmware上ubuntu无法共享文件夹问题第一步:设置共享文件夹第二步:安装open-vm-tools第三步:挂载文件夹先查看设置的文件夹有没有起效创建目录并挂载手动挂载/自动挂载最后保存退出(先别走!)解决vmware上ubun...
    99+
    2022-09-23
  • win7共享文件夹设定实例教程
    尽管win7系统软件较为年纪大了,可是或是有着许多的文件夹名称可以去共享的,可以依然会有客户不清楚怎么操作的,因此接下来就提供了win7共享文件夹设定实例教程,赶紧来一起看看吧。win7共享文件夹设定:最先点击左下方开始,随后进到操作面板,...
    99+
    2023-07-11
  • Server2008服务器隐藏共享文件夹 隐藏用户无权访问的共享文件夹 隐藏服务器共享文件
    在局域网共享文件管理中,有时候为了保护服务器共享文件的安全,我们常常需要隐藏用户无权限访问的共享文件、设置共享文件隐藏,防止未经授权的用户越权访问共享文件的行为,尤其是还可以阻止外来用户随意接入单位局域网访问共享文件的行...
    99+
    2023-05-22
    服务器共享文件夹 server 2008服务器 隐藏共享文件夹
  • nodeftp上传文件夹到服务器案例详解
    完整代码示例如下: const ftp = require('ftp');//连接FTP const path = require('path'); const client = n...
    99+
    2023-05-14
    node ftp 上传 文件夹 服务器
  • 云服务器怎么共享文件夹到电脑
    云服务器可以让用户在不同的设备上访问共享文件夹,这意味着用户可以在不同的设备上轻松地访问和管理他们的文件。使用云服务器,用户可以将文件上传到云服务器中,然后通过云服务器的网络服务将文件下载到本地设备上,从而实现文件的共享和访问。 使用云服...
    99+
    2023-10-27
    共享文件夹 服务器 电脑
  • SSH 上传文件及文件夹到linux服务器的方法
    现在服务器linux很多。是不是不会传文件?别急 下面就是方法: 一、上传文件到linux服务器 首先从你本地切换到你要上传文件的目录,接下来: scp 文件名字 服务器用户名字@服务器ip:目录 例子: scp ...
    99+
    2022-06-04
    linux ssh 上传文件 linux服务器上传文件
  • vmware上Ubuntu共享文件夹问题怎么解决
    本篇内容主要讲解“vmware上Ubuntu共享文件夹问题怎么解决”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“vmware上Ubuntu共享文件夹问题怎么解决”吧!解决vmware上ubunt...
    99+
    2023-07-02
  • win8共享文件夹设置的方法
    1、按键盘上【WIN+E】快捷键,进入我的电脑,然后找到您要共享的文件夹。点击鼠标右键选择【共享】--【高级共享】 2、进入共享属性后选择【高级共享】---勾选【共享此文件夹】---点击【权限】检查一下Everyone...
    99+
    2023-06-03
    win8 共享 文件夹 方法
  • win7共享文件夹的方法教程
    在同一办公局域网下,建立共享文件夹能够更便捷地传输和共享文件,提升办公效率。不过不同系统设置共享文件夹的方法会有不同,有网友不清楚win7如何设置共享文件夹。大家赶快来学习win7共享文件夹设置方法,小编将为您介绍。  1、找到要共享的文件...
    99+
    2023-07-19
  • TypeScript前端上传文件到MinIO示例详解
    目录什么是MinIO本地Docker部署测试服务器上传的APITypeScript实现1. XMLHttpRequest2. Fetch API3. Axios从后端获取临时上传链接...
    99+
    2022-11-13
    TypeScript前端上传到MinIO TypeScript前端文件上传
  • Asp.Net上传文件并配置可上传大文件的方法
    ASP.NET 包含两个控件可以使用户向网页服务器上传文件。一旦服务器接受了上传的文件数据,那么应用程序就可以进行保存,进行检查或者忽略它。 HtmlInputFile -...
    99+
    2022-11-13
  • Python实现FTP上传文件或文件夹实例(递归)
    本文实例讲述了Python实现FTP上传文件或文件夹实例。分享给大家供大家参考。具体如下: import sys import os import json from ftplib import...
    99+
    2022-06-04
    递归 文件夹 上传文件
  • 怎么将一个文件夹上传到GitHub
    这篇文章主要介绍“怎么将一个文件夹上传到GitHub”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“怎么将一个文件夹上传到GitHub”文章能帮助大家解决问题。步骤1:在Github上创建存储库首先,...
    99+
    2023-07-05
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作