偶现在是把上传的东东转换成二进制然后存在数据库里面滴,然后对应的一个文件存了一个type
如果是doc类型的Type就为:application/msword
txt类型的Type为:text/plain
图片类型的Type为:image/gif
压缩包类型的Type为:application/octet-stream
这个Type是在用户点下载的时候,按照指定格式将二进制转换成对应的格式,但是现在存在一个问题是如果是docx就是office2007的文件就不能转换,我想知道他对应的Type应该是什么呢
意思就是 如果格式不是固定的那几个格式,怎么办呢?
我怎么转换呢?

解决方案 »

  1.   

    有多少格式就加多少个对应的type,尽量把可能用到的都加进去.页面上可以给出提示,或者程序中限制格式.
      

  2.   

       try
            {
                comm.CommandText = "select * from file where docid=" + docfileid + " and docversion=" + fversion;
                comm.CommandType = CommandType.Text;
                SqlDataReader reader = comm.ExecuteReader();
                while (reader.Read())
                {
                    HttpContext.Current.Response.AddHeader("Content-Disposition", "inline; filename=" + HttpUtility.UrlEncode(reader["docname"].ToString()));
                    HttpContext.Current.Response.ContentType = reader["doctype"].ToString();//读写类型  一定要设置 否则浏览器会当作文本输出
                    HttpContext.Current.Response.BinaryWrite((byte[])reader["doccontent"]);
                }
            }
            catch (Exception e)
            {
                HttpContext.Current.Response.Write(e.Message.ToString());
            }
    我这样写的 就是docx的格式不能下载!郁闷死咯!
      

  3.   

    docx
    对应的是word格式 
    我也是昨天才知道
    昨天下载了个.net概括在微软网站 发现就是这个格式的结果自动有word 打开的
      

  4.   

    可全部使用
    application/octet-stream
      

  5.   

    我用application/octet-stream
    上传的是一个docx文件,下载下来就变成一个压缩包了,解压文件,也不是我刚刚上传滴那个docx文件
    郁闷咯!
      

  6.   

    是我自己弄错咯
    都可以用application/octet-stream 
      

  7.   

    记得以前做一个例子,可以动态的读Type