1. return HttpNotFound();
  1. byte[] buffer0 = QRCode();
  2. return File(buffer0, @"image/jpeg"); // //通过二进制数据的方式 直接返回图片,在线浏览
  1. Image ss = CreateImage("",false,);
  2. MemoryStream ms = new MemoryStream();
  3. ss.Save(ms, ImageFormat.Jpeg);
  4. byte[] buffer = new byte[ms.Length];
  5. ms.Read(buffer, , buffer.Length);
  6. return File(ms.ToArray(), @"image/jpeg"); // //通过二进制数据的方式
  1. //暂无测试
  2. FileStream fs = new FileStream();
  3.  
  4. MemoryStream ms = new MemoryStream();
  5. img0.Save(ms, ImageFormat.Jpeg);
  6. byte[] buffer = new byte[ms.Length];
  7. ms.Read(buffer, , buffer.Length); //读取数据到字节数组
  8. fs.Read(buffer, , buffer.Length); //读取字节数组到缓冲区
  9. return new FileStreamResult(new FileStream(path, FileMode.Open), "image/jpeg");

//文件的输入流

  1. Stream filestrem = file.InputStream;
  2. StreamReader sr = new StreamReader(filestrem, System.Text.Encoding.GetEncoding("gb2312"));
  3. string stringReader = sr.ReadToEnd();
  1. StreamReader sr = new StreamReader(filestrem, System.Text.Encoding.GetEncoding("gb2312"));
  2. string stringReader = sr.ReadToEnd(); //流转字符串
  3. sr.BaseStream.Seek(, SeekOrigin.Begin); //重置流
  4.  
  5. sr.Close();sr.Dispose(); //读取完后,关闭流
  6. MemoryStream ms = new MemoryStream(System.Text.Encoding.Default.GetBytes(stringReader));
  7. return ms;
  1. // (1)byte[] bt=ms.ToArray();
  2. //(2)MemoryStream ms=new MemoryStream();ms.Write(bt,0,ms.Length);
  1. using System;
  2. using System.Collections.Generic;
  3. using System.ComponentModel;
  4. using System.Data;
  5. using System.Diagnostics;
  6. using System.Drawing;
  7. using System.IO;
  8. using System.Linq;
  9. using System.Text;
  10. using System.Threading.Tasks;
  11. using System.Windows.Forms;
  12.  
  13. namespace WindowsForm_CheckApk
  14. {
  15.  
  16. public partial class Form1 : Form
  17. {
  18.  
  19. public Form1()
  20. {
  21. InitializeComponent();
  22. }
  23.  
  24. private void button1_Click(object sender, EventArgs e)
  25. {
  26. Cmd c = new Cmd();
  27.  
  28. string.Format("{0} d badging {1}", "aapt.exe的path", "apk的path");
  29.  
  30. var str = c.RunCmd(@"E:\迅雷下载\小米5线刷\ext4_unpacker\ext4_unpacker\aapt.exe d badging C:\14.apk");
  31.  
  32. //byte[] UTF8byte = Encoding.Convert(Encoding.Unicode, Encoding.UTF8, byteArray);
  33.  
  34. List<Encoding> encodings = new List<Encoding>();
  35. encodings.Add(System.Text.Encoding.Unicode);
  36. encodings.Add(System.Text.Encoding.ASCII);
  37. encodings.Add(System.Text.Encoding.Default);
  38. encodings.Add(System.Text.Encoding.GetEncoding("GB2312")); //||GetEncoding("gbk") 都是GB2132
  39. encodings.Add(System.Text.Encoding.GetEncoding("big5")); //繁体中文
  40. encodings.Add(System.Text.Encoding.UTF7);
  41. encodings.Add(System.Text.Encoding.UTF8);
  42. encodings.Add(System.Text.Encoding.GetEncoding("GB18030"));
  43.  
  44. List<byte[]> bytes = new List<byte[]>();
  45. for (int i = ; i < encodings.Count; i++)
  46. {
  47. bytes.Add(encodings[i].GetBytes(str)); //以指定编码读取字符串到数组
  48. }
  49.  
  50. //Unicode 转 UTF8
  51. byte[] UTF8byte = Encoding.Convert(Encoding.Unicode, Encoding.UTF8, bytes[]);
  52. //将UTF8编码byte[]变为UTF8编码的字符串,编码一致,肯定可正确显示
  53. string str1 = Encoding.UTF8.GetString(UTF8byte);
  54.  
  55. List<string> outstrs = new List<string>(); //输出的字符串
  56.  
  57. for (int i = ; i < bytes.Count; i++)
  58. {
  59. outstrs.Add(Encoding.UTF8.GetString(bytes[i], , bytes[i].Length)); //
  60. }
  61.  
  62. //使用GetString方法,得到的string都是unicode编码的
  63. var gb = System.Text.Encoding.Default.GetBytes(str); //使用ASCII读取和Unicode读取,都乱码 , 使用UTF8读取也乱码,,使用ANSI读取,使用UTF8解码
  64. var gb2132_str = System.Text.Encoding.GetEncoding("GB2312").GetString(gb);
  65. var utf8_str = System.Text.Encoding.UTF8.GetString(gb);
  66. var ascii_str = System.Text.Encoding.ASCII.GetString(gb);
  67. var default_str = System.Text.Encoding.Default.GetString(gb);
  68. var ansi_str = System.Text.Encoding.UTF7.GetString(gb);
  69.  
  70. var td = "";
  71.  
  72. //byte[] byteArray = System.Text.Encoding.Default.GetBytes("00"); //以默认编码读取字符串到 字节数组
  73. //string aaa2 = System.Text.Encoding.Default.GetString(byteArray); //以默认编码 获得字节数组, 到字符串
  74.  
  75. }
  76. /// <summary>
  77. /// 字符串转为UniCode码字符串
  78. /// </summary>
  79. /// <param name="s"></param>
  80. /// <returns></returns>
  81. public static string StringToUnicode(string s)
  82. {
  83. char[] charbuffers = s.ToCharArray();
  84. byte[] buffer;
  85. StringBuilder sb = new StringBuilder();
  86. for (int i = ; i < charbuffers.Length; i++)
  87. {
  88. buffer = System.Text.Encoding.Unicode.GetBytes(charbuffers[i].ToString());
  89. sb.Append(String.Format("\\u{0:X2}{1:X2}", buffer[], buffer[]));
  90. }
  91. return sb.ToString();
  92. }
  93.  
  94. /// 字符串转Unicode
  95. /// </summary>
  96. /// <param name="source">源字符串</param>
  97. /// <returns>Unicode编码后的字符串</returns>
  98. public static string String2Unicode(string source)
  99. {
  100. var bytes = Encoding.Unicode.GetBytes(source);
  101. var stringBuilder = new StringBuilder();
  102. for (var i = ; i < bytes.Length; i += )
  103. {
  104. stringBuilder.AppendFormat("\\u{0:x2}{1:x2}", bytes[i + ], bytes[i]);
  105. }
  106. return stringBuilder.ToString();
  107. }
  108.  
  109. //编码测试
  110. private void button2_Click(object sender, EventArgs e)
  111. {
  112. string u16s = "忘記了啊abc"; //默认的字符编码是unicode,也就是utf16
  113.  
  114. //4种编码
  115. Encoding utf8 = Encoding.UTF8;
  116. Encoding utf16 = Encoding.Unicode;
  117. Encoding gb = Encoding.GetEncoding("gbk");
  118. Encoding b5 = Encoding.GetEncoding("big5");
  119.  
  120. //转换得到4种编码的字节流
  121. byte[] u16bytes = utf16.GetBytes(u16s);
  122. byte[] u8bytes = Encoding.Convert(utf16, utf8, u16bytes);
  123. byte[] gbytes = Encoding.Convert(utf16, gb, u16bytes);
  124. byte[] bbytes = Encoding.Convert(utf16, b5, u16bytes);
  125.  
  126. // unicode
  127. List<string> unicode_list = new List<string>();
  128. unicode_list.Add("unicode: ");
  129. foreach (byte c in u16bytes)
  130. {
  131. unicode_list.Add(((int)c).ToString("x") + " ");
  132. }
  133.  
  134. // UTF-8
  135. List<string> utf8_list = new List<string>();
  136. utf8_list.Add("utf8: ");
  137. foreach (byte c in u8bytes)
  138. {
  139. utf8_list.Add(((int)c).ToString("x") + " ");
  140. }
  141.  
  142. // GBK
  143. List<string> gbk_list = new List<string>();
  144. gbk_list.Add("gbk: ");
  145. foreach (byte c in gbytes)
  146. {
  147. gbk_list.Add(((int)c).ToString("x") + " ");
  148. }
  149.  
  150. // big5
  151. List<string> big5_list = new List<string>();
  152. big5_list.Add("big5: ");
  153. foreach (byte c in bbytes)
  154. {
  155. big5_list.Add(((int)c).ToString("x") + " ");
  156. }
  157.  
  158. //得到4种编码的string
  159. string u8s = utf8.GetString(u8bytes);
  160. string gs = gb.GetString(gbytes);
  161. string bs = b5.GetString(bbytes);
  162.  
  163. Console.WriteLine("unicode: " + u16s + " " + u16s.Length.ToString());
  164. Console.WriteLine("utf8: " + u8s + " " + u16s.Length.ToString());
  165. Console.WriteLine("gbk: " + gs + " " + gs.Length.ToString());
  166. Console.WriteLine("big5: " + bs + " " + bs.Length.ToString());
  167.  
  168. Console.Write("unicode: ");
  169. foreach (char c in u16s)
  170. {
  171. Console.Write(((int)c).ToString("x") + " ");
  172. }
  173. Console.WriteLine();
  174.  
  175. Console.Write("utf8: ");
  176. foreach (char c in u8s)
  177. {
  178. Console.Write(((int)c).ToString("x") + " ");
  179. }
  180. Console.WriteLine();
  181.  
  182. Console.Write("gb2312: ");
  183. foreach (char c in gs)
  184. {
  185. Console.Write(((int)c).ToString("x") + " ");
  186. }
  187. Console.WriteLine();
  188.  
  189. Console.Write("big5: ");
  190. foreach (char c in bs)
  191. {
  192. Console.Write(((int)c).ToString("x") + " ");
  193. }
  194. Console.WriteLine();
  195.  
  196. }
  197. }
  198. /// <summary>
  199. /// Cmd 的摘要说明。
  200. /// </summary>
  201. public class Cmd: Process
  202. {
  203. private Process proc = null;
  204. /// <summary>
  205. /// 构造方法
  206. /// </summary>
  207. public Cmd()
  208. {
  209. proc = new Process();
  210. }
  211.  
  212. /// <summary>
  213. /// 执行CMD语句
  214. /// </summary>
  215. /// <param name="cmd">要执行的CMD命令</param>
  216. public string RunCmd(string cmd)
  217. {
  218. proc.StartInfo.CreateNoWindow = true;
  219. proc.StartInfo.FileName = "cmd.exe";
  220. proc.StartInfo.UseShellExecute = false;
  221. proc.StartInfo.RedirectStandardError = true;
  222. proc.StartInfo.RedirectStandardInput = true;
  223. proc.StartInfo.RedirectStandardOutput = true;
  224. proc.Start();
  225. proc.StandardInput.WriteLine(cmd);
  226. proc.StandardInput.WriteLine("exit");
  227. #region --测试代码
  228.  
  229. //System.IO.Stream t = proc.StandardOutput.BaseStream;
  230. //byte[] bytes = new byte[t.Length]; //报错 流不支持查找
  231. //t.Read(bytes, 0, bytes.Length);
  232. //var out_str = System.Text.Encoding.UTF8.GetString(bytes);
  233. //// (1)byte[] bt=ms.ToArray();
  234. ////(2)MemoryStream ms=new MemoryStream();ms.Write(bt,0,ms.Length);
  235.  
  236. System.IO.StreamReader sOut = proc.StandardOutput;//这里是获取到一个StreamReader 流
  237.  
  238. byte[] bytes;
  239. using (MemoryStream memstream = new MemoryStream())
  240. {
  241. int bytesRead = ;
  242. byte[] buffer = new byte[];
  243. while ((bytesRead = sOut.BaseStream.Read(buffer, , buffer.Length)) > )
  244. {
  245. memstream.Write(buffer, , bytesRead);
  246. }
  247. bytes = memstream.ToArray();
  248.  
  249. //FileStream keyfs = new FileStream(Server.MapPath("/key/regkey2.dat"), FileMode.OpenOrCreate, FileAccess.ReadWrite, FileShare.Write);
  250. //BinaryWriter w = null;
  251. //w = new BinaryWriter(keyfs);
  252. //for (int t = 0; t < bytes.Length; t++)
  253. //{
  254. // w.Write((byte)bytes[t]);
  255. //}
  256.  
  257. memstream.Close();
  258. //w.Close();
  259. //keyfs.Close();
  260.  
  261. }
  262.  
  263. // t..CopyTo(ms);
  264. //var ms = StreamToMemoryStream(t);
  265.  
  266. var out_str = System.Text.Encoding.Default.GetString(bytes);
  267.  
  268. #endregion
  269.  
  270. #region --原始代码
  271. string outStr = proc.StandardOutput.ReadToEnd();
  272.  
  273. proc.Close();
  274. return outStr;
  275. #endregion
  276. }
  277. System.IO.MemoryStream StreamToMemoryStream(System.IO.Stream instream)
  278. {
  279. System.IO.MemoryStream outstream = new System.IO.MemoryStream();
  280. const int bufferLen = ;
  281. byte[] buffer = new byte[bufferLen];
  282. int count = ;
  283. while ((count = instream.Read(buffer, , bufferLen)) > )
  284. {
  285. outstream.Write(buffer, , count);
  286. }
  287. return outstream;
  288. }
  289. /// <summary>
  290. /// 打开软件并执行命令
  291. /// </summary>
  292. /// <param name="programName">软件路径加名称(.exe文件)</param>
  293. /// <param name="cmd">要执行的命令</param>
  294. public void RunProgram(string programName, string cmd)
  295. {
  296. Process proc = new Process();
  297. proc.StartInfo.CreateNoWindow = true;
  298. proc.StartInfo.FileName = programName;
  299. proc.StartInfo.UseShellExecute = false;
  300. proc.StartInfo.RedirectStandardError = true;
  301. proc.StartInfo.RedirectStandardInput = true;
  302. proc.StartInfo.RedirectStandardOutput = true;
  303. proc.Start();
  304. if (cmd.Length != )
  305. {
  306. proc.StandardInput.WriteLine(cmd);
  307. }
  308. proc.Close();
  309. }
  310. /// <summary>
  311. /// 打开软件
  312. /// </summary>
  313. /// <param name="programName">软件路径加名称(.exe文件)</param>
  314. public void RunProgram(string programName)
  315. {
  316. this.RunProgram(programName, "");
  317. }
  318. }
  1. 先把流转换为字节数组
  2. System.IO.StreamReader sOut = proc.StandardOutput;//这里是获取到一个StreamReader流
  3. using (MemoryStream memstream = new MemoryStream())
  4. {
  5. int bytesRead = ;
  6. byte[] buffer = new byte[];
  7. while ((bytesRead = sOut.BaseStream.Read(buffer, , buffer.Length)) > )
  8. {
  9. memstream.Write(buffer, , bytesRead);
  10. }
  11. bytes = memstream.ToArray();
  12. memstream.Close();
  13. }
  14. 再把字节数组以指定编码转为字符串
  15. var out_str = System.Text.Encoding.UTF8.GetString(bytes);

MVC 返回404,返回图片,流到数组,apk信息的更多相关文章

  1. 【转载】C#.NET WebApi返回各种类型(图片/json数据/字符串),.net图片转二进制流或byte

    C#.NET WebApi返回各种类型(图片/json数据/字符串),.net图片转二进制流或byte 转载:http://www.itdos.com/Mvc/20150302/0741255.htm ...

  2. ASP.NET误人子弟教程:在MVC下如何返回图片

    这几天忙着一些小事,也没有写什么了,今天,我们来玩一个比较简单的东东.就是在MVC下如何返回图片,相信,在传统WebForm下,大家都晓得怎么弄,方也不限于一种,但是,在架构较为严格的MVC里面,刚开 ...

  3. vue中图片返回404时,显示默认的图片

    图片返回404时候的处理 <img :src="userMsg.portrait" ref="img" alt=""> _thi ...

  4. ASP.NET MVC请求特殊静态文件返回404 Not Found

    今天在请求静态的json档案以及woff2档案,会返回404错误,需要在Web.Config里修改: <system.webServer> <modules> <remo ...

  5. mvc项目 ajax post 返回404错误

    后台代码没有问题,但是一直出现404错误 原因:iis设置,请求中文件大小超过限制会被过滤掉,直接返回404. 解决:设置iis,应用程序->请求筛选->规则->编辑功能设置-> ...

  6. ASP.NET MVC – 关于Action返回结果类型的事儿(上)

    原文:ASP.NET MVC – 关于Action返回结果类型的事儿(上) 本文转自:博客园-文超的技术博客 一.         ASP.NET MVC 1.0 Result 几何? Action的 ...

  7. .Net之使用Jquery Ajax通过FormData对象异步提交图片文件到服务端保存并返回保存的图片路径

    前言: 首先对于图片上传而言,在我们的项目开发中可以说出现的频率是相当的高的.这篇文章中,我将要描述的是在我们.Net中如何使用Jquery Ajax通过FormData对象异步提交图片文件到后台保存 ...

  8. mvc使用JsonResult返回Json数据

    mvc使用JsonResult返回Json数据   controller 中定义以下方法: public JsonResult UpdateSingle(int id, string actionNa ...

  9. springmvc 返回 404 解决

    Idea Maven springmvc spring 项目搭建中/url 可以访问controller,并且能返回正确的ModelAndView,但是页面总是显示404 项目结构: web.xml ...

随机推荐

  1. PatentTips - Zero voltage processor sleep state

    BACKGROUND Embodiments of the invention relate to the field of electronic systems and power manageme ...

  2. hdu_1036_Average is not Fast Enough_201311021335

    Average is not Fast Enough! Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (J ...

  3. Codeforces Round #418 (Div. 2) C. An impassioned circulation of affection

    C. An impassioned circulation of affection time limit per test 2 seconds memory limit per test 256 m ...

  4. spring-cloud-feign使用@RequetParam错误:QueryMap parameter must be a Map: int

    错误: QueryMap parameter must be a Map: int spring-cloud-feign处理@RequestParam和Spring MVC的不一样,Spring MV ...

  5. 改进MySQL Order By Rand()的低效率

    Author:flymorn Source:飘易Categories:PHP编程 PostTime:2011-1-14 15:35:07 正 文: 最近由于需要研究了一下MYSQL的随机抽取实现方法. ...

  6. CF #330 C

    改了题目之后,就是没有奇数的测试了... 其实可以很轻易地发现,要距离近的一方只会删除两端的,而要求远的一方会删除中间的. 那么,很明显的,剩下的两点会相差x/2个节点,于是,只要计算i和i+x/2的 ...

  7. [Android L or M ]解除SwitchPreference与Preference的绑定事件

    需求描写叙述 默认情况,Android的两个控件SwitchPreference和CheckBoxPreference的事件处理是和Preference整个区域的事件绑定在一起的,然而,有时须要将其事 ...

  8. javascript 数组,数组中加入新元素 push() ,unshift() 相当于Add()

    <1> var   a   =   [];     //建立数组 push   方法     将新元素加入到一个数组中,并返回数组的新长度值.

  9. 如何将unity资源窗体中的文件一下所有折叠/打开

    1.选中父物体 2.按住alt 3.再按下键盘上的左键/右键:此父物体下的所有折叠/打开 或者 alt + LMB  点击所要折叠/打开的父物体左边的小三角

  10. bzoj3436: 小K的农场(差分约束)

    3436: 小K的农场 Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 1575  Solved: 690[Submit][Status][Discus ...