asp .net core MVC上传文件夹至OSS对象存储

目录

一、控制器代码:

二、前端.cshtml页面代码:


一、控制器代码:

using Aliyun.OSS; // 引入阿里云OSS SDK
public IActionResult Index()
{
    return View();
}
public IActionResult Action(IFormFileCollection files)
{
    try
    {
        //阿里云OSS初始化
        string endpoint = "http://oss-cn-xxxx.aliyuncs.com"; // 以华东1为例
        string accessKeyId = "你的AccessKeyId";
        string accessKeySecret = "你的AccessKeySecret";
        string bucketName = "你的Bucket名称";
        var client = new OssClient(endpoint, accessKeyId, accessKeySecret);

        // 遍历上传文件夹内的所有文件
        foreach (var file in files)
        {
            if (file.Length > 0)
            {
                var stream = file.OpenReadStream();
				//文件名称
                string fileName = file.FileName;

                string folderName = "文件夹名"; // 自定义文件夹名
                var objectName = folderName + "/" + fileName; // 文件夹内文件路径

                // 如果文件夹不存在,先创建文件夹
                if (!client.DoesObjectExist(bucketName, folderName + "/"))
                {
                    client.PutObject(bucketName, folderName + "/", new MemoryStream(new byte[0])); // 创建空文件夹
                }

                // 上传文件至OSS
                client.PutObject(bucketName, objectName, stream);
            }
        }
        return Ok("上传成功!");
    }
    catch (Exception e)
    {
        return BadRequest(e.Message);
    }
}

二、前端.cshtml页面代码:

@{
    ViewData["Title"] = "Home Page";
}
<form id="uploadForm" method="post" enctype="multipart/form-data">
    <input type="file" name="files" multiple webkitdirectory directory>
    <button type="submit">上传</button>
</form>

<script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
<script>
    $(document).ready(function () {
        $('#uploadForm').submit(function (e) {
            e.preventDefault();

            var formData = new FormData(this);
            $.ajax({
                url: '/你的控制器/Action',
                type: 'post',
                data: formData,
                contentType: false,
                processData: false,
                success: function (result) {
                    console.log(result);
                    alert('上传成功!');
                },
                error: function (error) {
                    console.log(error);
                    alert('上传失败:' + error.responseText);
                }
            });
        });
    });
</script>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值