今天在使用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();
}
}
}

如何使用MIME类型的更多相关文章

  1. 上传和设置Mime类型

    这两天一直在忙把主页上传的事,幸亏不久前花七块钱买了一年的数据库和虚拟主机,昨天上传了自己的个人主页,发现很多问题要改,因为代码一直没整理就那么放着了,大部分东西都要重新弄,然后把本地数据库的数据迁移 ...

  2. 【积累篇:他山之石,把玉攻】Mime 类型列表

    按照内容类型排列的 Mime 类型列表 类型/子类型 扩展名 application/envoy evy application/fractals fif application/futurespla ...

  3. 如何在ASP.NET的web.config配置文件中添加MIME类型

    常常有一些特殊的MIME类型是IIS中没有的,一般来说要我们自己手动添加.如果网站经常更换服务器或者网站代码是提供给多个用户使用,那么会造成网站中用到的特殊的MIME类型要经常性的在IIS上配置.这里 ...

  4. 【IIS】IIS6.1配置 *.config 文件 的MIME类型用于升级程序

    参考:http://blog.csdn.net 1. 2. 请求筛选中允许config文件下载, 3. 添加.config到 MIME类型. 3.注意:筛选项.

  5. 使用MultipartEntity进行post请求的默认MIME类型

    MultipartEntity .FileBody的默认MIME类型:application/octet-stream

  6. 常用MIME类型(Flv,Mp4的mime类型设置)(转载)

    转载地址:http://www.cuplayer.com/player/Help/2011/0625/83.html 也许你会在纳闷,为什么我上传了flv或MP4文件到服务器,可输入正确地址通过htt ...

  7. 创建 MIME 类型////////////zzz

    用 Apache 创建 MIME 类型 在 Apache 里, MIME 类型和文件扩展名之间的映射是被存放在配置文件 "apache根目录/conf/mime.types" 里的 ...

  8. 各种文件的mime类型

    扩展名:abs MIME类型:audio/x-mpeg 扩展名:ai MIME类型:application/postscript 扩展名:aif MIME类型:audio/x-aiff 扩展名:aif ...

  9. 为Windows Azure Web站点添加MIME类型解决文件下载失败的问题

    这几天在倒腾Autodesk 360 Viewer,前面的文章也介绍过了,这将是一个全新的在线模型浏览工具.我做了个实验,把A360Viewer放在一个web 站点,然后发布到Windows Azur ...

  10. [转]IIS添加MIME扩展类型及常用的MIME类型列表

    http://www.cr173.com/html/18997_1.html 经常我在用IIS做为下载服务器的时候有时传上去的文件比如 xxx.iso 文件名名是传上去了,但是用http打开的时候确显 ...

随机推荐

  1. UIButton关于setFont方法过时的解决方法

    环境:xcode7 语言:Object-c 解决方法:更改UIButton的titleLabel属性的font值 一.新建一个Single View Application项目 二.创建一个UIBut ...

  2. Android系统简介(中):系统架构

    Android的系统架构栈分为4层,从上往下分别是Applications.Application framework.Libraries  & Android Runtime.Linux  ...

  3. iOS项目里面如何清理缓存

    在正式讲解以前,请先看一下以下图片,在以下这款APP种设有清理缓存,开始我以为很复杂,在弄明白之后,其实就是几句代码就解决了.      在实际项目开发中,我们很多的文件都会缓存在沙盒里面,比如:照片 ...

  4. 安装kali之后

    更新源(以下设置均基于这些源) #vi /etc/apt/sources.list 把这些源加进去 ############################ debian wheezy ####### ...

  5. 模板:qsort+bsearch应用

    (1)qsort: 功 能: 使用快速排序例程进行排序 头文件:stdlib.h 用 法: void qsort(void *base,int nelem,int width,int (*fcmp)( ...

  6. centos 安装php ide (eclipse + php 插件)

    1.检查更新并安装eclipse  yum check-update  yum install eclipse*此时的 eclipse 已经安装好了,默认是在/usr/lib/下的,可以通过cd /u ...

  7. c#基础知识对比(面向对象)

    private,protected,public和internal private:是完全私有的,只有本类自己能用[好比自己的老婆,只有你自己可以调用,其他谁都不可以] protected:可被外界看 ...

  8. DB2实用命令记录

    quiesce tablespace quiesce tablespaces for table <table_name> share; Monitor Switches details ...

  9. [转]MonkeyRunner在Windows下的Eclipse开发环境搭建步骤(兼解决网上Jython配置出错的问题)

    MonkeyRunner在Windows下的Eclipse开发环境搭建步骤(兼解决网上Jython配置出错的问题)   网上有一篇shangdong_chu网友写的文章介绍如何在Eclipse上配置M ...

  10. WINIO64位模拟键鼠操作

    最近玩游戏有点入迷,心急升级经验,于是某天开始"挂尸体",一系列手动操作之后决定写一个外挂,模拟一系列键盘和鼠标操作,没做过游戏winform也用得少,开始以为只要简单调用winA ...