好辛苦生成了二维码,然后要实现点击“保存图片”,弹出选择路径进行保存的效果。

look:

    string qrcodeurl = "";
    string username = "";
    protected void btnSave_Click(object sender, EventArgs e)
    {
        //生成图片  
        Bitmap image = Create_ImgCode(qrcodeurl, 5);
        //保存图片  
        string server_saveurl = Server.MapPath("~/") + "Upload\\qrcode";
        SaveImg(server_saveurl, image);
        FileDownload(server_saveurl + "\\" + username + ".png");
    }

    /// <summary>  
    /// 生成二维码图片  
    /// </summary>  
    /// <param name="codeNumber">要生成二维码的字符串</param>       
    /// <param name="size">大小尺寸</param>  
    /// <returns>二维码图片</returns>  
    public Bitmap Create_ImgCode(string codeNumber, int size)
    {
        //创建二维码生成类  
        QRCodeEncoder qrCodeEncoder = new QRCodeEncoder();
        //设置编码模式  
        qrCodeEncoder.QRCodeEncodeMode = QRCodeEncoder.ENCODE_MODE.BYTE;
        //设置编码测量度  
        qrCodeEncoder.QRCodeScale = size;
        //设置编码版本  
        qrCodeEncoder.QRCodeVersion = 0;
        //设置编码错误纠正  
        qrCodeEncoder.QRCodeErrorCorrect = QRCodeEncoder.ERROR_CORRECTION.M;
        //生成二维码图片  
        System.Drawing.Bitmap image = qrCodeEncoder.Encode(codeNumber);
        return image;
    } 

    /// <summary>  
    /// 保存图片,在服务端  
    /// </summary>  
    /// <param name="strPath">保存路径</param>  
    /// <param name="img">图片</param>  
    public string SaveImg(string strPath, Bitmap img)
    {
        //保存图片到目录  
        if (!Directory.Exists(strPath))
        {
            //当前目录不存在,则创建  
            Directory.CreateDirectory(strPath);
        }
        //文件名称  
        string filename = strPath + "/" + username + ".png";
        if (File.Exists(filename))
        {
            return filename;
        }
        img.Save(filename, System.Drawing.Imaging.ImageFormat.Png);
        return filename;
    }

    /// <summary>
    /// webform另存图片,在客户端
    /// </summary>
    /// <param name="FullFileName"></param>
    private void FileDownload(string FullFileName)
    {
        FileInfo DownloadFile = new FileInfo(FullFileName);
        Response.Clear();
        Response.ClearHeaders();
        Response.Buffer = false;
        Response.ContentType = "application/octet-stream";
        Response.AppendHeader("Content-Disposition", "attachment;filename=" + HttpUtility.UrlEncode(DownloadFile.FullName, System.Text.Encoding.UTF8));
        Response.AppendHeader("Content-Length", DownloadFile.Length.ToString());
        Response.WriteFile(DownloadFile.FullName);
        Response.Flush();
        Response.End();
    }

都是网上找的,找了好久在想到先把图片保存到服务端,然后再从服务端下载到客服端。

posted on 2016-04-09 17:04  vinsonLu  阅读(1199)  评论(0编辑  收藏  举报