多个二维码下载
for(int i=0;i<20;i++){
Dictionary<string, Stream> myDictionary = new Dictionary<string, Stream>();
string QR = "show QR info"+i;
string head = "XiaoPOooo"+i+".jpg";
Bitmap bt = new Bitmap(280, 280);
string enCodeString = QR;
QRCodeEncoder qrCodeEncoder = new QRCodeEncoder();
bt = qrCodeEncoder.Encode(enCodeString, Encoding.UTF8);
qrCodeEncoder.QRCodeEncodeMode = QRCodeEncoder.ENCODE_MODE.BYTE;
qrCodeEncoder.QRCodeScale = 10;
qrCodeEncoder.QRCodeVersion = 0;
qrCodeEncoder.QRCodeErrorCorrect = QRCodeEncoder.ERROR_CORRECTION.M;
qrCodeEncoder.QRCodeBackgroundColor = Color.Black;
qrCodeEncoder.QRCodeForegroundColor = Color.White;
System.IO.MemoryStream ms = new System.IO.MemoryStream();
bt.Save(ms, System.Drawing.Imaging.ImageFormat.Png);
Stream stream = new MemoryStream(ms.ToArray());
myDictionary.Add(head, stream);
}
this.Response.ContentType = "application/octet-stream";
string strFileNameEncode = HttpUtility.UrlEncode("QR包" + ".zip");
this.Response.AddHeader("Content-Disposition", "attachment; filename=" + strFileNameEncode);
Encoding encoding = Encoding.GetEncoding("Shift-JIS");
this.Response.BinaryWrite(ZipPackage(myDictionary).ToArray());
this.Response.Flush();
this.Response.End();
其中ZipPackage()方法如下
static MemoryStream ZipPackage(Dictionary<string, Stream> streams)
{
byte[] buffer = new byte[6500];
MemoryStream returnStream = new MemoryStream();
var zipMs = new MemoryStream();
using (ZipOutputStream zipStream = new ZipOutputStream(zipMs))
{
zipStream.SetLevel(9);
foreach (var kv in streams)
{
string fileName = kv.Key;
using (var streamInput = kv.Value)
{
zipStream.PutNextEntry(new ZipEntry(fileName));
while (true)
{
var readCount = streamInput.Read(buffer, 0, buffer.Length);
if (readCount > 0)
{
zipStream.Write(buffer, 0, readCount);
}
else
{
break;
}
}
zipStream.Flush();
}
}
zipStream.Finish();
zipMs.Position = 0;
zipMs.CopyTo(returnStream, 5600);
}
returnStream.Position = 0;
return returnStream;
}
单个二维码下载
string QR = "show QR info";
string head = "XiaoPOooo.jpg";
Bitmap bt = new Bitmap(280, 280);
string enCodeString = QR;
QRCodeEncoder qrCodeEncoder = new QRCodeEncoder();
bt = qrCodeEncoder.Encode(enCodeString, Encoding.UTF8);
qrCodeEncoder.QRCodeEncodeMode = QRCodeEncoder.ENCODE_MODE.BYTE;
qrCodeEncoder.QRCodeScale = 10;
qrCodeEncoder.QRCodeVersion = 0;
qrCodeEncoder.QRCodeErrorCorrect = QRCodeEncoder.ERROR_CORRECTION.M;
qrCodeEncoder.QRCodeBackgroundColor = Color.Black;
qrCodeEncoder.QRCodeForegroundColor = Color.White;
System.IO.MemoryStream ms = new System.IO.MemoryStream();
bt.Save(ms, System.Drawing.Imaging.ImageFormat.Png);
this.Response.ContentType = "application/octet-stream";
string strFileNameEncode = HttpUtility.UrlEncode(head + ".jpg");
this.Response.AddHeader("Content-Disposition", "attachment; filename=" + strFileNameEncode);
Encoding encoding = Encoding.GetEncoding("Shift-JIS");
this.Response.BinaryWrite(ms.ToArray());
this.Response.Flush();
this.Response.End();