实例介绍
【实例简介】c# asp.net 多图上传例子源码
【实例截图】
【核心代码】
using System;
using System.Collections.Generic;
using System.Drawing;
using System.IO;
using System.Web;
using Plupload.Web.Entity;
using Plupload.Web.Common;
namespace Plupload.Web.Services
{
/// <summary>
/// 图片上传类。
/// </summary>
public class ServiceUpload : ServiceBase
{
/// <summary>
/// 初始化 <see cref="ServiceUpload"/> 类的新实例。
/// </summary>
public ServiceUpload()
{
string session_param_name = "ASPSESSID";
string session_cookie_name = "ASP.NET_SessionId";
if (HttpContext.Current.Request.Form[session_param_name] != null)
{
UpdateCookie(session_cookie_name, HttpContext.Current.Request.Form[session_param_name]);
}
else if (HttpContext.Current.Request.QueryString[session_param_name] != null)
{
UpdateCookie(session_cookie_name, HttpContext.Current.Request.QueryString[session_param_name]);
}
}
void UpdateCookie(string cookie_name, string cookie_value)
{
HttpCookie cookie = HttpContext.Current.Request.Cookies.Get(cookie_name);
if (cookie == null)
{
cookie = new HttpCookie(cookie_name);
HttpContext.Current.Request.Cookies.Add(cookie);
}
cookie.Value = cookie_value;
HttpContext.Current.Request.Cookies.Set(cookie);
}
#region Methods...
#region 取得缩略图...
/// <summary>
/// 取得缩略图。
/// </summary>
public void OutputThumbnail()
{
HttpContext context = HttpContext.Current;
string imageName = context.Request.QueryString["ThumbnailId"] as string;
if (imageName != null)
{
List<ThumbnailInfo> thumbnails = (List<ThumbnailInfo>)context.Session["thumbnails"];
// List<ThumbnailInfo> thumbnails = context.Session["thumbnails"] as List<ThumbnailInfo>;
if (thumbnails != null)
{
foreach (ThumbnailInfo thumbnail in thumbnails)
{
if (thumbnail.Id == imageName)
{
context.Response.ContentType = "image/jpeg";
context.Response.BinaryWrite(thumbnail.Data);
context.Response.End();
return;
}
}
}
}
context.Response.StatusCode = 404;
context.Response.Write("Not Found");
context.Response.End();
}
#endregion
#region 上传图片
/// <summary>
/// 上传图片
/// </summary>
/// <returns></returns>
public void UploadImage()
{
HttpContext context = HttpContext.Current;
string dirName = DateTime.Now.ToString("yyyyMMdd");
string uploadPath = Path.Combine(PathConfig.UploadPath, string.Format("{0}/", dirName)); //上传文件的路径
//string thumbsImagePath =
// string uploadFileUrl = PathConfig.UploadUrl(); //上传文件的URL
HttpPostedFile uploadFile = context.Request.Files["file"];
try
{
//验证文件夹是否存在
if (!Directory.Exists(uploadPath))
{
Directory.CreateDirectory(uploadPath);
}
string fileName = DateTime.Now.ToString("yyyyMMddHHmmssfff");
string imagePath = uploadPath fileName ".Jpeg";
Image originalImg = Image.FromStream(uploadFile.InputStream);
originalImg.Save(imagePath, System.Drawing.Imaging.ImageFormat.Jpeg);
Image thumbnail = ImageProcess.MakeThumbnail(originalImg, 640, 480, ThumbnailMode.ByWidth);
string thumbsPath = uploadPath fileName "-Thumbs.Jpeg";
thumbnail.Save(thumbsPath, System.Drawing.Imaging.ImageFormat.Jpeg);
MemoryStream thumbsStream = ImageProcess.MakeThumbnail(originalImg, 100, 100);
ThumbnailInfo thumbnailInfo = new ThumbnailInfo(fileName, thumbsStream.GetBuffer());
thumbsStream.Close();
List<ThumbnailInfo> thumbnails = (List<ThumbnailInfo>)context.Session["thumbnails"];
if (thumbnails == null)
{
thumbnails = new List<ThumbnailInfo>();
context.Session["thumbnails"] = thumbnails;
}
thumbnails.Add(thumbnailInfo);
context.Session["thumbnails"] = thumbnails;
context.Response.StatusCode = 200;
context.Response.Write("[{'name':'" fileName "','originalUrl':'" PathConfig.GetVirtualPath(imagePath) "','thumbnailUrl':'" PathConfig.GetVirtualPath(thumbsPath) "'}]");
}
catch
{
context.Response.StatusCode = 500;
context.Response.Write("An error occured");
context.Response.End();
}
}
#endregion
#endregion
}
}
好例子网口号:伸出你的我的手 — 分享!
网友评论
小贴士
感谢您为本站写下的评论,您的评论对其它用户来说具有重要的参考价值,所以请认真填写。
- 类似“顶”、“沙发”之类没有营养的文字,对勤劳贡献的楼主来说是令人沮丧的反馈信息。
- 相信您也不想看到一排文字/表情墙,所以请不要反馈意义不大的重复字符,也请尽量不要纯表情的回复。
- 提问之前请再仔细看一遍楼主的说明,或许是您遗漏了。
- 请勿到处挖坑绊人、招贴广告。既占空间让人厌烦,又没人会搭理,于人于己都无利。
关于好例子网
本站旨在为广大IT学习爱好者提供一个非营利性互相学习交流分享平台。本站所有资源都可以被免费获取学习研究。本站资源来自网友分享,对搜索内容的合法性不具有预见性、识别性、控制性,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,平台无法对用户传输的作品、信息、内容的权属或合法性、安全性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论平台是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二与二十三条之规定,若资源存在侵权或相关问题请联系本站客服人员,点此联系我们。关于更多版权及免责申明参见 版权及免责申明


支持(0) 盖楼(回复)