//一般处理程序
public void GetImageFromWeb()
{ //创建文件夹 //2016-10-14 dq
string filePath = "~/ProductImage/";
string mapFilePath;
mapFilePath = HttpContext.Current.Server.MapPath(filePath);
if (!Directory.Exists(mapFilePath))
{
Directory.CreateDirectory(mapFilePath);
}
filePath += userEntity.User_ID + "/";
mapFilePath = HttpContext.Current.Server.MapPath(filePath);
if (!Directory.Exists(mapFilePath))
{
Directory.CreateDirectory(mapFilePath);
}
//2016-10-14 注释 dq //写入数据库的路径
string imgUrl = "/ProductImage/" + userEntity.User_ID + "/"; // 图片数据 HttpFileCollection files = System.Web.HttpContext.Current.Request.Files;
string fileName = files[].FileName;
string name = System.IO.Path.GetFileName(fileName);
Stream stream = files[].InputStream;
byte[] bytes = new byte[stream.Length];
stream.Read(bytes, , bytes.Length);
// 设置当前流的位置为流的开始
stream.Seek(, SeekOrigin.Begin);
ResImgUpLoadData entity = WS.UploadImgs(bytes, mapFilePath, name, imgUrl, userEntity); BaseReturn(entity); }
//C#代码
#region 图片上传
/// <summary>
// 功能简述:接口公开方法,图片上传
// 开发文档:无
// 开发团队:新产品组
// 设计:邓
// 分析:邓
// 代码:邓
// 开发时间:2016.3.10
// 代码检查:
// 是否在使用:是
/// <summary>
/// 上传图片
/// </summary>
/// <param name="bytes">图片信息</param>
/// <param name="pFileName">文件夹名称</param>
/// <param name="pImgName">图片名称</param>
/// <param name="pImgPath">写入数据库的图片路径</param>
/// <param name="pUserInfo">操作人</param>
/// <returns></returns>
/// public ProductOnShelvesDML.ResImgUpLoadData UploadImgs(byte[] bytes, string pFileName, string pImgName, string pImgPath, UserDML.UserLoginInfo pUserInfo)
{
return pUploadImgs(bytes, pFileName,pImgName, pImgPath,pUserInfo);
} private ProductOnShelvesDML.ResImgUpLoadData pUploadImgs(byte[] bytes,string pFileName,string pImgName, string pImgPath,UserDML.UserLoginInfo pUserInfo)
{
ProductOnShelvesDML.ResImgUpLoadData objResult=new ProductOnShelvesDML.ResImgUpLoadData();
//V_User_DB_Info objUserDBRes;
//PublicCommonDML.ResComm objResComm;
//Common objCommonDB; //objResult = new ProductOnShelvesDML.ResImgUpLoadData();
//objCommonDB = new Common();
Common objCommonDB = new Common();
PublicCommonDML.ResComm objResComm = new PublicCommonDML.ResComm(); ; try
{
string CommomString = "";//保存连接实体String
// 验证用户信息,并获得连接实体
// 代码:邓奇
// 开发时间:2016-10-17
SYSCEntityDBAddLogic objSYSCEntityDBAddLogic = new SYSCEntityDBAddLogic();
objResComm = objSYSCEntityDBAddLogic.GetUserDBString(pUserInfo.User_ID, pUserInfo.User_PWD);
if (objResComm.ResState == PublicCommonDML.ResFlag.Success)
{
CommomString = objSYSCEntityDBAddLogic.ConectionSring;
}
else
{
objResult.ResComm = objResComm;
return objResult;
} //服务器端创建文件夹并保存在WS端 //string filePath = "myImg";
//string mapFilePath;
//mapFilePath = HttpContext.Current.Server.MapPath(filePath);
//if (!Directory.Exists(mapFilePath))
// Directory.CreateDirectory(mapFilePath);
//filePath += pUserInfo.User_ID + "/";
//mapFilePath = HttpContext.Current.Server.MapPath(filePath);
//if (!Directory.Exists(mapFilePath))
// Directory.CreateDirectory(mapFilePath);
//filePath += pUserInfo.User_ID + "/";
//mapFilePath = HttpContext.Current.Server.MapPath(filePath);
//if (!Directory.Exists(mapFilePath))
// Directory.CreateDirectory(mapFilePath);
// 图片数据
//Stream stream = new MemoryStream(bytes);//数据转换
//MemoryStream ms = new MemoryStream();
//System.Drawing.Image img = System.Drawing.Image.FromStream(stream);
//img.Save(pFileName + pImgName);//保存
//ms.Close();
//string path = mapFilePath + pImgName;
//objResult.ResComm.ResState = PublicCommonDML.ResFlag.Success;
//objResult.ResComm.ResMessage = path;//返回图片路径
//return objResult; ////pFileName-----不需从前端传进,由配置文件设置
//string PhysicalAddress = System.Configuration.ConfigurationSettings.AppSettings["PhysicalAddress"];//存放图片的物理位置以及名称
//pFileName = @PhysicalAddress;
//pFileName += pUserInfo.User_ID + "\\";
//if (!Directory.Exists(pFileName))
//{
// Directory.CreateDirectory(pFileName);//创建文件夹
//}
//string IPAddress = System.Configuration.ConfigurationSettings.AppSettings["IPAddress"];//存放图片的物理位置对应的项目IP //创建文件夹(在一般处理程序完成)并保存在WEB端 //限制图片格式
bool Isimage = false;
string suff = pImgName.Substring(pImgName.LastIndexOf('.'), pImgName.Length - pImgName.LastIndexOf('.')); //获取文件后缀
string[] allowExtension = { ".jpg", ".jpeg", ".gif", ".bmp", ".png", ".JPG", ".JPEG", ".GIF", ".BMP", ".PNG" };
for (int i = ; i < allowExtension.Length; i++)
{
if (suff == allowExtension[i])
{
Isimage = true;
break;
}
else
{ Isimage = false; }
}
if (!Isimage)
{
objResult.ResComm.ResState = PublicCommonDML.ResFlag.Fail;
objResult.ResComm.ResMessage = "图片格式不正确,上传失败";
return objResult;
} // 图片数据
Stream stream = new MemoryStream(bytes);//数据转换
if (stream.Length > ) //1M
{
objResult.ResComm.ResState = PublicCommonDML.ResFlag.Fail;
objResult.ResComm.ResMessage = "图片大小超过1M,上传失败";
return objResult;
}
else
{
MemoryStream ms = new MemoryStream();
System.Drawing.Image img = System.Drawing.Image.FromStream(stream);
string imgName = DateTime.Now.ToString("yyyyMMddHHmmssffff") + suff; //图片名称
img.Save(pFileName + imgName);//保存
ms.Close(); string path = pFileName + imgName;//图片全路径
objResult.ResComm.ResState = PublicCommonDML.ResFlag.Success;
objResult.img_url = pImgPath+imgName;//返回图片相对路径
objResult.ResComm.ResMessage = "上传成功";
} return objResult; }
catch (Exception ex)
{
string strMsg;
string strErrMsg;
strMsg = pUserInfo.User_ID + "\r\n" + pUserInfo.User_PWD + "\r\n" + ACCPCWS.MyCommons.Common.DMLToXML(pImgName.GetType(), pImgName);
strErrMsg = LogLogic.WriteLog(ex, "E100008", strMsg);
if (strErrMsg == "")
{
objResult.ResComm.ResState = PublicCommonDML.ResFlag.Error;
objResult.ResComm.ResMessage = "系统服务器维护中,请稍后重试。";
}
else
{
objResult.ResComm.ResState = PublicCommonDML.ResFlag.SysErrorMsg;
objResult.ResComm.ResMessage = strErrMsg;
}
} return objResult;
} #endregion

C#上传图片的更多相关文章

  1. 博客使用BOS上传图片

    1.博客平台的选定 从大学开始做个人主页算起,最开始是使用html,CSSS写简单的页面,后面大学毕业之后接触到了WordPress,就开始用WordPress搭建网站.现在还维护着一个农村网站.ht ...

  2. nodejs利用ajax实现网页无刷新上传图片

    nodejs利用ajax实现网页无刷新上传图片 标签(空格分隔): nodejs 通常情况下上传图片是要通过提交form表单来实现的,但是这又不可避免的产生了网页转. 利用ajax技术和FormDat ...

  3. -Android -线程池 批量上传图片 -附php接收代码

    (出处:http://www.cnblogs.com/linguanh/) 目录: 1,前序 2,类特点 3,用法 4,java代码 5,php代码 1,前序 还是源于重构,看着之前为赶时间写着的碎片 ...

  4. iOS 原生HTTP POST请求上传图片

    今天项目里做一个上传图片等个人信息的时候,使用了第三方AFNetworking - (AFHTTPRequestOperation *)POST:(NSString *)URLString param ...

  5. 大朋展翅 html5上传图片(三)一解决部分手机拍相册批量上传图片转向问题

    在经过前面的改进之后本来以为已经没有问题了,但经过我们神通广大的测试的测试,发现相册中的图片在上传时也会发生转向问题.既然前面都解决了拍照转向的问题,那么相册中图片的上传也容易解决.修改一下需要旋转图 ...

  6. html5上传图片(一)一跨域上传

    最近开发一个上传图片的模块,传图片的接口不支持跨域上传,并且只支持单张上传,而我们的产品要求要实现多张上传.我搞了一个代理页面,先将图片传到代理页面,然后再通过代理页面传到上传图片接口.虽然这种方式经 ...

  7. h5上传图片及预览

    第一次做图片上传,记录一些问题. 1,图片的base64编码就是可以将一副图片数据编码成一串字符串,使用该字符串代替图像地址.而网页上的每一个图片,都是需要消耗一个http请求下载而来的,使用base ...

  8. .NET WebAPI 实现图片上传(包括附带参数上传图片)

    博主的项目,客户端是APP,考虑到以后也可能会应用到微信端.网站等,图片上传方法就需要兼容多端,并且以目前的设计,不允许非登录用户上传图片,就得在上传时解决附带参数上传图片的问题. 先来看看后台方法( ...

  9. java 上传图片

    1.导入smartupload.jar包 ,添加uploadIMG.jsp,upfileIMG.jsp. 2.需要在项目下面建立一个保存文件的文件夹pic或者upload 3.在调用的地方调用子框架u ...

  10. jsp上传图片实时显示

    jsp代码 <div class="form-group" id="caseIma"> <label class="control- ...

随机推荐

  1. java第二周周学习总结

    java运算符和循环 java运算符 一.for 语句 for 语句的基本结构如下所示:for(初始化表达式;判断表达式;递增(递减)表达式){    执行语句;   //一段代码} 初始化表达式:初 ...

  2. Unity Animator动画状态机 深入理解(一)

    接触Unity以来就已经有了Animator,Animation用的少,不过也大概理解他俩之间的一个区别于联系. 图中其实就是Animator和Animation之间的区别于联系了,啊!你肯定会告诉我 ...

  3. Mysql 查看、创建、更改 数据库和表

    一.一探究竟 我想看看有多少个数据库,有多少个表,以及表里有啥东西.那么你可以这样: 图形界面: 命令: 查看多少个数据库:注意 后面带s #查看 SHOW DATABASES; #查看表 USE b ...

  4. JVM内存分配策略

    在 JVM内存垃圾回收方法 中,我们已经详细讨论了内存回收,但是,我们程序中生成的对象是如何进行分配的呢?以下所述针对的是HotSpot虚拟机. 1.Java堆结构 以HotSpot为例,如下图: H ...

  5. nginx配置ssl证书的方法

    Nginx (读音"engine x") 是一个高性能的HTTP和反向代理服务器,比Apache占用更少的内存,同时也像Apache一样支持HTTPS方式访问(SSL加密).本教程 ...

  6. sql 批量更新某个字段的值

    UPDATE Tabel1 t1 set t1.col1= ( SELECT col2 from Tabel2 t2 WHERE t1.col1=t2.col2) where exists ( SEL ...

  7. 多Form界面控件状态变化问题分析

    假定有frmA,frmB,frmC三个界面,当frmA中触发显示frmC与frmB触发显示frmC时显示界面不同,或者让frmC上的某个按钮不可用,此时应该在如何来控制frmC的显示.是采用在frmC ...

  8. 推荐几款我一直在用的chrome插件(上)

    我用的chrome插件挺多的,所谓工欲善其事必先利其器,我热衷于搜寻好用的工具来让我平时的工作事半功倍.下面介绍几款我正在用的感觉还不错的插件,如果大家还有其它好用的(肯定有,chrome插件库太庞大 ...

  9. hao916,hao123,2345.com浏览器劫持-分析与清除

    装了Win10, 要激活, 于是论坛下载了一个KMS10激活, (我是很相信论坛的啊, 没想到...)结果浏览器总是被加小尾巴跳转到hao123 http://hao.qquu8.com/?v=108 ...

  10. spring MVC mybatis dispacherServlet(源码解读)

    以下源码版本(4.2.0.RELEASE) dispacherServlet是servlet的实现类,是spring MVC的前端转发器,是spring MVC的核心. 那么它做了哪些事呢? 它主要做 ...