.net上传,一个选择直接上传(ashx)和byteArray上传
<%@ WebHandler Language="C#" Class="UploadImage" %> using System; using System.Web; public class UploadImage : IHttpHandler { //文件上传目录 private string uploadFolder = "UploadImage"; public void ProcessRequest(HttpContext context) { context.Response.ContentType = "text/plain"; HttpFileCollection files = context.Request.Files; if (files.Count > 0) { string path = context.Server.MapPath(uploadFolder); HttpPostedFile file = files[0]; if (file != null && file.ContentLength > 0) { string fileName = DateTime.Now.ToString("yyyyMMddhhmmss") + context.Request.Form["fileName"]; string savePath = path + "/" + fileName; file.SaveAs(savePath); System.Web.HttpResponse obj = context.Response; obj.Write(fileName); } } else { context.Response.Write("参数错误"); context.Response.End(); } } public bool IsReusable { get { return false; } } }
<%@ Page Language="C#" ContentType="text/html" ResponseEncoding="gb2312" Debug="true"%> <%@ Import Namespace="System.IO" %> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=gb2312"> <title>上传</title> </head> <body> <script language="c#" runat="server"> public void Page_Load(Object sender,EventArgs e) { if (true) { string saveToFolder = "file"; string Path = Server.MapPath(saveToFolder); //通过Resquest.InputStream解收的是Stream形式,转换成byte[]形式 Stream s = Request.InputStream; byte[] bt = StreamToBytes(s); //将byte[]形式转换成MemoryStream形式,再保存为图片 System.IO.MemoryStream ms = new System.IO.MemoryStream(bt); System.Drawing.Bitmap b = new System.Drawing.Bitmap(ms); b.Save(Path + "/proj.jpg"); Response.Write(true); Response.End(); } } //此函数将Stream转换成byte[] public byte[] StreamToBytes(Stream stream) { byte[] bytes = new byte[stream.Length]; stream.Read(bytes, 0, bytes.Length); // 设置当前流的位置为流的开始 stream.Seek(0, SeekOrigin.Begin); return bytes; } </script> </body> </html>
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。