You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

C#报错Guid应包含32位带4短横字符 上传图片以Guid命名存文件夹问题

错误原因

你报错的核心原因是代码逻辑错误:你尝试将用户上传的原始文件名转换为Guid格式,代码行如下:
Guid ImageFileName = new Guid ((request.file.FileName).ToString());
普通用户上传的文件名根本不符合「32位字符+4个短横线」的Guid规范格式,所以直接抛出格式校验错误。

正确修改方案

你需要的是生成一个全新的唯一Guid作为文件名,而非转换现有文件名,同时要保留原始文件的扩展名,避免存储的文件无法正常识别,修改逻辑如下:

  1. 替换错误的Guid创建代码:
// 生成全新的唯一Guid
Guid newFileGuid = Guid.NewGuid();
// 提取原始文件的扩展名
string fileExt = Path.GetExtension(request.file.FileName);
// 拼接为带扩展名的最终文件名
string ImageFileName = $"{newFileGuid}{fileExt}";
  1. 优化路径拼接逻辑,避免转义符错误,替换原MemoryStream写入的代码块:
// 用Path.Combine处理路径拼接,兼容性更好
var path = Path.Combine(Environment.CurrentDirectory, "File");
if (!Directory.Exists(path))
    Directory.CreateDirectory(path);
// 拼接完整文件存储路径
var fullFilePath = Path.Combine(path, ImageFileName);
// 直接写入字节数组,简化代码
File.WriteAllBytes(fullFilePath, bytes);

额外提示:你当前代码仅完成了文件本地存储,并未将文件路径/文件名写入要入库的Slider实体中,建议给mapped对象的对应存储路径字段赋值,后续才能正常访问到上传的图片。

内容的提问来源于stack exchange,提问作者user16695025

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 04:06:03