MVC 返回404,返回图片,流到数组,apk信息
- return HttpNotFound();
- byte[] buffer0 = QRCode();
- return File(buffer0, @"image/jpeg"); // //通过二进制数据的方式 直接返回图片,在线浏览
- Image ss = CreateImage("",false,);
- MemoryStream ms = new MemoryStream();
- ss.Save(ms, ImageFormat.Jpeg);
- byte[] buffer = new byte[ms.Length];
- ms.Read(buffer, , buffer.Length);
- return File(ms.ToArray(), @"image/jpeg"); // //通过二进制数据的方式
- //暂无测试
- FileStream fs = new FileStream();
- MemoryStream ms = new MemoryStream();
- img0.Save(ms, ImageFormat.Jpeg);
- byte[] buffer = new byte[ms.Length];
- ms.Read(buffer, , buffer.Length); //读取数据到字节数组
- fs.Read(buffer, , buffer.Length); //读取字节数组到缓冲区
- return new FileStreamResult(new FileStream(path, FileMode.Open), "image/jpeg");
//文件的输入流
- Stream filestrem = file.InputStream;
- StreamReader sr = new StreamReader(filestrem, System.Text.Encoding.GetEncoding("gb2312"));
- string stringReader = sr.ReadToEnd();
- StreamReader sr = new StreamReader(filestrem, System.Text.Encoding.GetEncoding("gb2312"));
- string stringReader = sr.ReadToEnd(); //流转字符串
- sr.BaseStream.Seek(, SeekOrigin.Begin); //重置流
- sr.Close();sr.Dispose(); //读取完后,关闭流
- MemoryStream ms = new MemoryStream(System.Text.Encoding.Default.GetBytes(stringReader));
- return ms;
- // (1)byte[] bt=ms.ToArray();
- //(2)MemoryStream ms=new MemoryStream();ms.Write(bt,0,ms.Length);
- using System;
- using System.Collections.Generic;
- using System.ComponentModel;
- using System.Data;
- using System.Diagnostics;
- using System.Drawing;
- using System.IO;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- using System.Windows.Forms;
- namespace WindowsForm_CheckApk
- {
- public partial class Form1 : Form
- {
- public Form1()
- {
- InitializeComponent();
- }
- private void button1_Click(object sender, EventArgs e)
- {
- Cmd c = new Cmd();
- string.Format("{0} d badging {1}", "aapt.exe的path", "apk的path");
- var str = c.RunCmd(@"E:\迅雷下载\小米5线刷\ext4_unpacker\ext4_unpacker\aapt.exe d badging C:\14.apk");
- //byte[] UTF8byte = Encoding.Convert(Encoding.Unicode, Encoding.UTF8, byteArray);
- List<Encoding> encodings = new List<Encoding>();
- encodings.Add(System.Text.Encoding.Unicode);
- encodings.Add(System.Text.Encoding.ASCII);
- encodings.Add(System.Text.Encoding.Default);
- encodings.Add(System.Text.Encoding.GetEncoding("GB2312")); //||GetEncoding("gbk") 都是GB2132
- encodings.Add(System.Text.Encoding.GetEncoding("big5")); //繁体中文
- encodings.Add(System.Text.Encoding.UTF7);
- encodings.Add(System.Text.Encoding.UTF8);
- encodings.Add(System.Text.Encoding.GetEncoding("GB18030"));
- List<byte[]> bytes = new List<byte[]>();
- for (int i = ; i < encodings.Count; i++)
- {
- bytes.Add(encodings[i].GetBytes(str)); //以指定编码读取字符串到数组
- }
- //Unicode 转 UTF8
- byte[] UTF8byte = Encoding.Convert(Encoding.Unicode, Encoding.UTF8, bytes[]);
- //将UTF8编码byte[]变为UTF8编码的字符串,编码一致,肯定可正确显示
- string str1 = Encoding.UTF8.GetString(UTF8byte);
- List<string> outstrs = new List<string>(); //输出的字符串
- for (int i = ; i < bytes.Count; i++)
- {
- outstrs.Add(Encoding.UTF8.GetString(bytes[i], , bytes[i].Length)); //
- }
- //使用GetString方法,得到的string都是unicode编码的
- var gb = System.Text.Encoding.Default.GetBytes(str); //使用ASCII读取和Unicode读取,都乱码 , 使用UTF8读取也乱码,,使用ANSI读取,使用UTF8解码
- var gb2132_str = System.Text.Encoding.GetEncoding("GB2312").GetString(gb);
- var utf8_str = System.Text.Encoding.UTF8.GetString(gb);
- var ascii_str = System.Text.Encoding.ASCII.GetString(gb);
- var default_str = System.Text.Encoding.Default.GetString(gb);
- var ansi_str = System.Text.Encoding.UTF7.GetString(gb);
- var td = "";
- //byte[] byteArray = System.Text.Encoding.Default.GetBytes("00"); //以默认编码读取字符串到 字节数组
- //string aaa2 = System.Text.Encoding.Default.GetString(byteArray); //以默认编码 获得字节数组, 到字符串
- }
- /// <summary>
- /// 字符串转为UniCode码字符串
- /// </summary>
- /// <param name="s"></param>
- /// <returns></returns>
- public static string StringToUnicode(string s)
- {
- char[] charbuffers = s.ToCharArray();
- byte[] buffer;
- StringBuilder sb = new StringBuilder();
- for (int i = ; i < charbuffers.Length; i++)
- {
- buffer = System.Text.Encoding.Unicode.GetBytes(charbuffers[i].ToString());
- sb.Append(String.Format("\\u{0:X2}{1:X2}", buffer[], buffer[]));
- }
- return sb.ToString();
- }
- /// 字符串转Unicode
- /// </summary>
- /// <param name="source">源字符串</param>
- /// <returns>Unicode编码后的字符串</returns>
- public static string String2Unicode(string source)
- {
- var bytes = Encoding.Unicode.GetBytes(source);
- var stringBuilder = new StringBuilder();
- for (var i = ; i < bytes.Length; i += )
- {
- stringBuilder.AppendFormat("\\u{0:x2}{1:x2}", bytes[i + ], bytes[i]);
- }
- return stringBuilder.ToString();
- }
- //编码测试
- private void button2_Click(object sender, EventArgs e)
- {
- string u16s = "忘記了啊abc"; //默认的字符编码是unicode,也就是utf16
- //4种编码
- Encoding utf8 = Encoding.UTF8;
- Encoding utf16 = Encoding.Unicode;
- Encoding gb = Encoding.GetEncoding("gbk");
- Encoding b5 = Encoding.GetEncoding("big5");
- //转换得到4种编码的字节流
- byte[] u16bytes = utf16.GetBytes(u16s);
- byte[] u8bytes = Encoding.Convert(utf16, utf8, u16bytes);
- byte[] gbytes = Encoding.Convert(utf16, gb, u16bytes);
- byte[] bbytes = Encoding.Convert(utf16, b5, u16bytes);
- // unicode
- List<string> unicode_list = new List<string>();
- unicode_list.Add("unicode: ");
- foreach (byte c in u16bytes)
- {
- unicode_list.Add(((int)c).ToString("x") + " ");
- }
- // UTF-8
- List<string> utf8_list = new List<string>();
- utf8_list.Add("utf8: ");
- foreach (byte c in u8bytes)
- {
- utf8_list.Add(((int)c).ToString("x") + " ");
- }
- // GBK
- List<string> gbk_list = new List<string>();
- gbk_list.Add("gbk: ");
- foreach (byte c in gbytes)
- {
- gbk_list.Add(((int)c).ToString("x") + " ");
- }
- // big5
- List<string> big5_list = new List<string>();
- big5_list.Add("big5: ");
- foreach (byte c in bbytes)
- {
- big5_list.Add(((int)c).ToString("x") + " ");
- }
- //得到4种编码的string
- string u8s = utf8.GetString(u8bytes);
- string gs = gb.GetString(gbytes);
- string bs = b5.GetString(bbytes);
- Console.WriteLine("unicode: " + u16s + " " + u16s.Length.ToString());
- Console.WriteLine("utf8: " + u8s + " " + u16s.Length.ToString());
- Console.WriteLine("gbk: " + gs + " " + gs.Length.ToString());
- Console.WriteLine("big5: " + bs + " " + bs.Length.ToString());
- Console.Write("unicode: ");
- foreach (char c in u16s)
- {
- Console.Write(((int)c).ToString("x") + " ");
- }
- Console.WriteLine();
- Console.Write("utf8: ");
- foreach (char c in u8s)
- {
- Console.Write(((int)c).ToString("x") + " ");
- }
- Console.WriteLine();
- Console.Write("gb2312: ");
- foreach (char c in gs)
- {
- Console.Write(((int)c).ToString("x") + " ");
- }
- Console.WriteLine();
- Console.Write("big5: ");
- foreach (char c in bs)
- {
- Console.Write(((int)c).ToString("x") + " ");
- }
- Console.WriteLine();
- }
- }
- /// <summary>
- /// Cmd 的摘要说明。
- /// </summary>
- public class Cmd: Process
- {
- private Process proc = null;
- /// <summary>
- /// 构造方法
- /// </summary>
- public Cmd()
- {
- proc = new Process();
- }
- /// <summary>
- /// 执行CMD语句
- /// </summary>
- /// <param name="cmd">要执行的CMD命令</param>
- public string RunCmd(string cmd)
- {
- proc.StartInfo.CreateNoWindow = true;
- proc.StartInfo.FileName = "cmd.exe";
- proc.StartInfo.UseShellExecute = false;
- proc.StartInfo.RedirectStandardError = true;
- proc.StartInfo.RedirectStandardInput = true;
- proc.StartInfo.RedirectStandardOutput = true;
- proc.Start();
- proc.StandardInput.WriteLine(cmd);
- proc.StandardInput.WriteLine("exit");
- #region --测试代码
- //System.IO.Stream t = proc.StandardOutput.BaseStream;
- //byte[] bytes = new byte[t.Length]; //报错 流不支持查找
- //t.Read(bytes, 0, bytes.Length);
- //var out_str = System.Text.Encoding.UTF8.GetString(bytes);
- //// (1)byte[] bt=ms.ToArray();
- ////(2)MemoryStream ms=new MemoryStream();ms.Write(bt,0,ms.Length);
- System.IO.StreamReader sOut = proc.StandardOutput;//这里是获取到一个StreamReader 流
- byte[] bytes;
- using (MemoryStream memstream = new MemoryStream())
- {
- int bytesRead = ;
- byte[] buffer = new byte[];
- while ((bytesRead = sOut.BaseStream.Read(buffer, , buffer.Length)) > )
- {
- memstream.Write(buffer, , bytesRead);
- }
- bytes = memstream.ToArray();
- //FileStream keyfs = new FileStream(Server.MapPath("/key/regkey2.dat"), FileMode.OpenOrCreate, FileAccess.ReadWrite, FileShare.Write);
- //BinaryWriter w = null;
- //w = new BinaryWriter(keyfs);
- //for (int t = 0; t < bytes.Length; t++)
- //{
- // w.Write((byte)bytes[t]);
- //}
- memstream.Close();
- //w.Close();
- //keyfs.Close();
- }
- // t..CopyTo(ms);
- //var ms = StreamToMemoryStream(t);
- var out_str = System.Text.Encoding.Default.GetString(bytes);
- #endregion
- #region --原始代码
- string outStr = proc.StandardOutput.ReadToEnd();
- proc.Close();
- return outStr;
- #endregion
- }
- System.IO.MemoryStream StreamToMemoryStream(System.IO.Stream instream)
- {
- System.IO.MemoryStream outstream = new System.IO.MemoryStream();
- const int bufferLen = ;
- byte[] buffer = new byte[bufferLen];
- int count = ;
- while ((count = instream.Read(buffer, , bufferLen)) > )
- {
- outstream.Write(buffer, , count);
- }
- return outstream;
- }
- /// <summary>
- /// 打开软件并执行命令
- /// </summary>
- /// <param name="programName">软件路径加名称(.exe文件)</param>
- /// <param name="cmd">要执行的命令</param>
- public void RunProgram(string programName, string cmd)
- {
- Process proc = new Process();
- proc.StartInfo.CreateNoWindow = true;
- proc.StartInfo.FileName = programName;
- proc.StartInfo.UseShellExecute = false;
- proc.StartInfo.RedirectStandardError = true;
- proc.StartInfo.RedirectStandardInput = true;
- proc.StartInfo.RedirectStandardOutput = true;
- proc.Start();
- if (cmd.Length != )
- {
- proc.StandardInput.WriteLine(cmd);
- }
- proc.Close();
- }
- /// <summary>
- /// 打开软件
- /// </summary>
- /// <param name="programName">软件路径加名称(.exe文件)</param>
- public void RunProgram(string programName)
- {
- this.RunProgram(programName, "");
- }
- }
- 先把流转换为字节数组
- System.IO.StreamReader sOut = proc.StandardOutput;//这里是获取到一个StreamReader流
- using (MemoryStream memstream = new MemoryStream())
- {
- int bytesRead = ;
- byte[] buffer = new byte[];
- while ((bytesRead = sOut.BaseStream.Read(buffer, , buffer.Length)) > )
- {
- memstream.Write(buffer, , bytesRead);
- }
- bytes = memstream.ToArray();
- memstream.Close();
- }
- 再把字节数组以指定编码转为字符串
- var out_str = System.Text.Encoding.UTF8.GetString(bytes);
MVC 返回404,返回图片,流到数组,apk信息的更多相关文章
- 【转载】C#.NET WebApi返回各种类型(图片/json数据/字符串),.net图片转二进制流或byte
C#.NET WebApi返回各种类型(图片/json数据/字符串),.net图片转二进制流或byte 转载:http://www.itdos.com/Mvc/20150302/0741255.htm ...
- ASP.NET误人子弟教程:在MVC下如何返回图片
这几天忙着一些小事,也没有写什么了,今天,我们来玩一个比较简单的东东.就是在MVC下如何返回图片,相信,在传统WebForm下,大家都晓得怎么弄,方也不限于一种,但是,在架构较为严格的MVC里面,刚开 ...
- vue中图片返回404时,显示默认的图片
图片返回404时候的处理 <img :src="userMsg.portrait" ref="img" alt=""> _thi ...
- ASP.NET MVC请求特殊静态文件返回404 Not Found
今天在请求静态的json档案以及woff2档案,会返回404错误,需要在Web.Config里修改: <system.webServer> <modules> <remo ...
- mvc项目 ajax post 返回404错误
后台代码没有问题,但是一直出现404错误 原因:iis设置,请求中文件大小超过限制会被过滤掉,直接返回404. 解决:设置iis,应用程序->请求筛选->规则->编辑功能设置-> ...
- ASP.NET MVC – 关于Action返回结果类型的事儿(上)
原文:ASP.NET MVC – 关于Action返回结果类型的事儿(上) 本文转自:博客园-文超的技术博客 一. ASP.NET MVC 1.0 Result 几何? Action的 ...
- .Net之使用Jquery Ajax通过FormData对象异步提交图片文件到服务端保存并返回保存的图片路径
前言: 首先对于图片上传而言,在我们的项目开发中可以说出现的频率是相当的高的.这篇文章中,我将要描述的是在我们.Net中如何使用Jquery Ajax通过FormData对象异步提交图片文件到后台保存 ...
- mvc使用JsonResult返回Json数据
mvc使用JsonResult返回Json数据 controller 中定义以下方法: public JsonResult UpdateSingle(int id, string actionNa ...
- springmvc 返回 404 解决
Idea Maven springmvc spring 项目搭建中/url 可以访问controller,并且能返回正确的ModelAndView,但是页面总是显示404 项目结构: web.xml ...
随机推荐
- PatentTips - Zero voltage processor sleep state
BACKGROUND Embodiments of the invention relate to the field of electronic systems and power manageme ...
- 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 ...
- 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 ...
- 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 ...
- 改进MySQL Order By Rand()的低效率
Author:flymorn Source:飘易Categories:PHP编程 PostTime:2011-1-14 15:35:07 正 文: 最近由于需要研究了一下MYSQL的随机抽取实现方法. ...
- CF #330 C
改了题目之后,就是没有奇数的测试了... 其实可以很轻易地发现,要距离近的一方只会删除两端的,而要求远的一方会删除中间的. 那么,很明显的,剩下的两点会相差x/2个节点,于是,只要计算i和i+x/2的 ...
- [Android L or M ]解除SwitchPreference与Preference的绑定事件
需求描写叙述 默认情况,Android的两个控件SwitchPreference和CheckBoxPreference的事件处理是和Preference整个区域的事件绑定在一起的,然而,有时须要将其事 ...
- javascript 数组,数组中加入新元素 push() ,unshift() 相当于Add()
<1> var a = []; //建立数组 push 方法 将新元素加入到一个数组中,并返回数组的新长度值.
- 如何将unity资源窗体中的文件一下所有折叠/打开
1.选中父物体 2.按住alt 3.再按下键盘上的左键/右键:此父物体下的所有折叠/打开 或者 alt + LMB 点击所要折叠/打开的父物体左边的小三角
- bzoj3436: 小K的农场(差分约束)
3436: 小K的农场 Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 1575 Solved: 690[Submit][Status][Discus ...