zoukankan      html  css  js  c++  java
  • 如何使用MIME类型

    今天在使用System.Net.WebClient做一个下载的时候,很郁闷,已经发不好的文件视频,却怎么也下载不了。

    究其原因有两个,

    1. System.Net.WebClient对象的DownloadFileAsync(urine,filename)参数是否有误。
    2. 发布的网站是否可以访问,

    对于上面两个原因,本人做了测试,

    1. 首先是测试了网站上的视频是否可以访问,使用本地的视频播放器打开网址视频,结果打不开,可知网站上的视频是不能访问的。解决方法:调整网址,重新设置ip地址,做法是选中iis上发布的网站,右键,选择编辑绑定,设置一个固定的ip ,操作如下图
    2. 设置以后,再次使用本地播放器,打开链接,可以播放。于是我就实用程序System.Net.WebClient对象的DownloadFileAsync(urine,filename)来下载,结果提示 什么MIME 类型无法访问,我上网看了下MIME是什么东西,简单地说就是MIME(Multipurpose Internet Mail Extensions)多用途互联网邮件扩展类型。是设定某种扩展名的文件用一种应用程序来打开的方式类型,当该扩展名文件被访问的时候,浏览器会自动使用指定应用程序来打开。多用于指定一些客户端自定义的文件名,以及一些媒体文件打开方式。噢,到这里才明白,原来是格式问题。于是就有了下面操作,详情见下面的图:
    3. 下面是本人在搜索问题是发现的,作以引用,与本人的操作进行对比。
    4. 也许你会在纳闷,为什么我上传了flv或MP4文件到服务器,可输入正确地址通过http协议来访问总是出现“无法找到该页”的404错误呢?这就表明mp4格式文件是服务器无法识别的,其实,这是没有在iis中将相应的MIME类型进行设置的原因。那该怎样设置MIME类型呢?

      开启mp4文件的话,需要在 “Internet信息(IIS)管理器”中右击需要更改的网站或目录,可以打开形如下图的窗口(我右击的是文件夹而不是站点,所以您右击站点的话打开的 或许比我的选项卡多,不管怎样您点击HTTP头就可以打开怎样的窗口了):

      服务器增加mp4格式的MIME 类型映射设置的具体步骤是:
      “开始” > “控制面板” > “管理工具” >“Internet 信息服务(IIS管理器)”,找到您的网站,右击 > “属性” > “HTTP头” > “MIME类型” > “新建”,在“扩展名”框内输入“.mp4”,“MIME类型”框中输入“application/octet-stream”,然后确定即可。“MIME类型”只是一个描述,并非非得输入“flv-application/octet-stream”。

      服务器增加flv格式的MIME 类型映射设置的具体步骤是:
      “开始” > “控制面板” > “管理工具” >“Internet 信息服务(IIS管理器)”,找到您的网站,右击 > “属性” > “HTTP头” > “MIME类型” > “新建”,在“扩展名”框内输入“.flv”,“MIME类型”框中输入“flv-application/octet-stream”,然后确定即可。“MIME类型”只是一个描述,并非非得输入“flv-application/octet-stream”。

      MIME类型就是设定某种扩 展名的文件用一种应用程序来打开的方式类型,当该扩展名文件被访问的时候,浏览器会自动使用指定应用程序来打开。多用于指定一些客户端自定义的文件名,以 及一些媒体文件打开方式。

                                                                 

                                                                 

                                                                

    下面列出常用的文件对 应的MIME类型:

    Mime-Types(mime类型)Dateiendung(扩展名)Bedeutung
    application/msexcel *.xls *.xla Microsoft Excel Dateien
    application/mshelp *.hlp *.chm Microsoft Windows Hilfe Dateien
    application/mspowerpoint *.ppt *.ppz *.pps *.pot Microsoft Powerpoint Dateien
    application/msword *.doc *.dot Microsoft Word Dateien

    application/octet-stream

    *.exe exe
    application/pdf *.pdf Adobe PDF-Dateien
    application/post****** *.ai *.eps *.ps Adobe Post******-Dateien
    application/rtf *.rtf Microsoft RTF-Dateien
    application/x-httpd-php *.php *.phtml PHP-Dateien
         
    application/x-java****** *.js serverseitige Java******-Dateien
    application/x-shockwave-flash *.swf *.cab Flash Shockwave-Dateien
    application/zip *.zip ZIP-Archivdateien
    audio/basic *.au *.snd Sound-Dateien
    audio/mpeg *.mp3 MPEG-Dateien
    audio/x-midi *.mid *.midi MIDI-Dateien
    audio/x-mpeg *.mp2 MPEG-Dateien
    audio/x-wav *.wav Wav-Dateien
    image/gif *.gif GIF-Dateien
    image/jpeg *.jpeg *.jpg *.jpe JPEG-Dateien
    image/x-windowdump *.xwd X-Windows Dump
    text/css *.css CSS Stylesheet-Dateien
    text/html *.htm *.html *.shtml -Dateien
    text/java****** *.js Java******-Dateien
    text/plain *.txt reine Textdateien
    video/mpeg *.mpeg *.mpg *.mpe MPEG-Dateien
    video/vnd.rn-realvideo *.rmvb realplay-Dateien
    video/quicktime *.qt *.mov Quicktime-Dateien
    video/vnd.vivo *viv *.vivo Vivo-Dateien

     

    一下是本人的测试代码:

    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Windows.Forms;

    namespace 测试下载
    {
    public partial class Form1 : Form
    {
    System.Net.WebClient wc = new System.Net.WebClient();
    public Form1()
    {
    InitializeComponent();
    }

    private void button1_Click(object sender, EventArgs e)
    {
    wc.DownloadFileAsync(new Uri("http://192.168.0.106:8088/demo.mp4"), Application.StartupPath + "\新建文件夹\1234.mp4");
    //wc.DownloadFileAsync(new Uri("http://localhost:8088/demo.mp4"), Application.StartupPath + "\新建文件夹\1234.mp4");
    //wc.DownloadFileAsync(new Uri("http://192.168.0.150:8080/设计器介绍.wmv"), Application.StartupPath + "\新建文件夹\1234.mp4");

    }
    public void DownLoadProgress(object sender, System.Net.DownloadProgressChangedEventArgs e)
    {
    this.progressBar1.Value = e.ProgressPercentage;
    //MessageBox.Show("已经完成" + e.ProgressPercentage.ToString(), "提示完成百分比");
    }

    public void DownLoadCompleted(object sender, AsyncCompletedEventArgs e)
    {
    MessageBox.Show("已经完成" + e.ToString(), "提示完成百分比");
    System.Diagnostics.Process.Start(Application.StartupPath + "\新建文件夹\1234.mp4");
    }

    private void Form1_Load(object sender, EventArgs e)
    {
    wc.DownloadFileCompleted += new AsyncCompletedEventHandler(DownLoadCompleted);
    wc.DownloadProgressChanged += new System.Net.DownloadProgressChangedEventHandler(DownLoadProgress);
    //this.progressBar1.Step = 1;
    //this.progressBar1.PerformStep();
    }
    }
    }

  • 相关阅读:
    Numpy基本介绍
    Java中的<< 和 >> 和 >>> 详细分析
    Matplotlib绘制基本图像
    Matplotlib基本使用
    最新动态:开源项目 ionic3-awesome — 实现生成带logo二维码组件
    最新动态:开源项目 ionic3-awesome — 实现iframe嵌入外部网页
    最新动态: 开源项目 ionic3-awesome — 实现多主题功能
    Angular5强势来袭
    js中对象的拷贝,浅拷贝和深拷贝
    vue2 + element-ui + axios 开源项目推荐
  • 原文地址:https://www.cnblogs.com/1175429393wljblog/p/5413014.html
Copyright © 2011-2022 走看看