在手机端下载图片后(如:a.jpg),图片不能被直接打开,如果修改了文件名子,就可以打开了。
请教高人,有没有什么办法解决? FileInfo DownloadFile = new FileInfo(filePath);
context.Response.Buffer = false;
//context.Response.ContentType = "application/octet-stream";
context.Response.ContentType = "image/gjpeg";
context.Response.AppendHeader("Content-Disposition", "attachment;filename=a.jpg";
context.Response.AppendHeader("Content-Length", DownloadFile.Length.ToString());
context.Response.WriteFile(DownloadFile.FullName);
context.Response.Flush();

解决方案 »

  1.   

    下列代码,给一个文件夹下所有文件改名,供你参考
    int i = 1;
    string oldstr = DateTime.Now.ToString("yyyyMMddhhmm");
    DirectoryInfo myDir = new DirectoryInfo("RecordedFiles");
    foreach (FileInfo fi in myDir.GetFiles())
    {
        fi.MoveTo("RecordedFiles\\" + oldstr + (i++).ToString() + "_.flv");}
      

  2.   


    你可能理解错我的意思了。
    我上面的代码是asp.net常用的图片下载代码,在电脑端的时候,下载的图片没有问题可以被识别为图片,但在手机上的时候,虽然也能下载图片,但就是不能被作为图片打开。因此我在想不是不在手机端需要输出更多的头部信息?
      

  3.   

    不知道你是如何“打开”的。你的 image/gjpeg 写错了。实际上什么消息头都不添加,在手机端也应该可以打开图片。关键是从你的问题中看不出你是如何打开的。
      

  4.   


    我试了很多方法都不行, image/gjpeg 是我多次测试用的。
    打开方法就是下载完之后在手机顶部会提示下载完成,滑出信息,直接点 下载记录 来打开,提示让选择打开方式。
    在文件管理里面可以看到图片的缩略图,修改一下文件名子,就可以打开了,例如:a.jpg修改为ab.jpg就可以打开。