相关疑难解决方法(0)

从文件扩展名获取MIME类型

如何从文件扩展名中获取MIME类型?

c# asp.net mime

318
推荐指数
13
解决办法
25万
查看次数

使用.NET,如何根据文件签名而不是扩展名找到文件的mime类型

我正在寻找一种简单的方法来获取文件扩展名不正确或没有给出的mime类型,类似于.Net中的这个问题.

c# mime mime-types

234
推荐指数
9
解决办法
21万
查看次数

Windows API代码包:它在哪里?

为什么自己和它曾经存在的证据被删除了?

仅仅半年之前,它在channel9上被宣传为应该包含在每个人中的东西 - 今天微软档案馆已经"退役"并且完全保持API代码包存在的安静.

.net windows-api-code-pack

95
推荐指数
3
解决办法
6万
查看次数

确定上传的文件是否是MVC上的图像(任何格式)

所以我正在使用此代码进行查看:

<form action="" method="post" enctype="multipart/form-data">

  <label for="file">Filename:</label>
  <input type="file" name="file" id="file" />

  <input type="submit" />
</form>
Run Code Online (Sandbox Code Playgroud)

这适用于型号:

[HttpPost]
public ActionResult Index(HttpPostedFileBase file) {

  if (file.ContentLength > 0) {
    var fileName = Path.GetFileName(file.FileName);
    var path = Path.Combine(Server.MapPath("~/App_Data/uploads"), fileName);
    file.SaveAs(path);
  }

  return RedirectToAction("Index");
}
Run Code Online (Sandbox Code Playgroud)

除非用户添加不是图像的文件,否则效果很好.如何确保上传的文件是图像.谢谢

c# asp.net-mvc razor

51
推荐指数
5
解决办法
6万
查看次数

检查文件扩展名是否为图像的好方法

我有这个文件类型过滤器:

    public const string Png = "PNG Portable Network Graphics (*.png)|" + "*.png";
    public const string Jpg = "JPEG File Interchange Format (*.jpg *.jpeg *jfif)|" + "*.jpg;*.jpeg;*.jfif";
    public const string Bmp = "BMP Windows Bitmap (*.bmp)|" + "*.bmp";
    public const string Tif = "TIF Tagged Imaged File Format (*.tif *.tiff)|" + "*.tif;*.tiff";
    public const string Gif = "GIF Graphics Interchange Format (*.gif)|" + "*.gif";
    public const string AllImages = "Image file|" + "*.png; *.jpg; *.jpeg; *.jfif; *.bmp;*.tif; *.tiff; *.gif";
    public …
Run Code Online (Sandbox Code Playgroud)

c# file-extension openfiledialog filefilter

20
推荐指数
4
解决办法
5万
查看次数

urlmon.dll FindMimeFromData()在64位桌面/控制台上运行良好,但在ASP.NET上生成错误

我正在创建一个实用程序库,以便在Web环境中的桌面环境中使用.

它包含我认为在我的应用程序中经常重复的几个功能,包括通过其内容(而不是扩展名)获取文件的mime类型的实用程序.

我必须检查的文件是最常见的(jpg,png,pdf,txt)所以我选择使用外部方法FindMimeFromData(上面的链接)

使用.NET,如何根据文件签名而不是扩展名找到文件的mime类型

该方法运行良好,除了两个不正确的mime类型的JPG(image/pjpg)和PNG(image/x-png),通过在return语句之前进行检查很容易解决.

该库是为平台AnyCPU编译的,因为它必须以32位和64位安装在服务器/客户端上.

在桌面环境测试时,所有为x86和x64编译的应用程序都正常工作.

在测试ASP.NET应用程序(带有用于测试的http处理程序的空站点)时发生类型为HRESULT的错误,并且调试器告诉我它无法提供进一步的信息.

经过一些测试配置,包括将池的身份更改为本地系统(没有结果),我已经确定了问题:

池应该允许32位应用程序(见上图).

IisAllow32BitApplication

为什么?

它不应该加载urlmon.dll我们现在的64位系统的DLL ?

这是一个很大的问题,因为该FindMimeFromData方法可以被任何地方调用到这个库中:

结果是,另一个实用程序方法调用此方法可能会抛出此异常,并且很难通过调试来跟踪问题.

任何想法/经验?

用于测试的操作系统

桌面:

  1. Windows 8 x64 - 有效
  2. Windows 7 x64 - 有效
  3. Windows Server 2008 Standard R2 x64 - 有效
  4. Windows Server 2008 Standard x86 - 有效
  5. Windows Server 2003 Standard x86 - 有效
  6. Windows XP Professional SP3 - 有效

网址:

  1. Windows 8 x64 - 发现第一个错误,仅适用于启用32位应用程序
  2. Windows Server 2008 Standard R2 x64 - 确认错误,仅适用于启用32位应用程序 …

c# dllimport 32bit-64bit urlmon

10
推荐指数
1
解决办法
6446
查看次数

针对视频文件编辑元数据

我正在尝试编写一个实用程序,用于在录制的视频中插入我自己的信息,但似乎没有一个库可以完成此操作。

在我最近的尝试中,我使用了 TagLib Sharp 库,但这似乎不适合音频文件:

private void ApplyTags(string p_sFilePath, Result p_Result)
{
    TagLib.File f = TagLib.File.Create(p_sFilePath);

    f.Tag.Title = p_Result.title;
    f.Tag.Year = Convert.ToUInt32(p_Result.year);

    f.Save();
}
Run Code Online (Sandbox Code Playgroud)

虽然填写视频文件的标题和年份确实有效,但 TagLib Sharp 似乎不支持“评级”、“贡献艺术家”、“导演”等项目。

所以我的问题是,是否有另一个库对视频文件提供更广泛的支持?如果没有,我该如何手动为 MP4 或 AVI 执行此操作?

c# metadata id3

7
推荐指数
1
解决办法
5684
查看次数