//一般处理程序
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. Oracle数据库基础知识

    oracle数据库plsql developer   目录(?)[-] 一     SQL基础知识 创建删除数据库 创建删除修改表 添加修改删除列 oracle cascade用法 添加删除约束主键外 ...

  2. C# 常用代码

    学习备忘 1.判断程序是否运行 static void Main() { bool canCreateNew; System.Threading.Mutex myownmutex = new Syst ...

  3. xv6课本翻译之——附录A Pc的硬件

    Appendix A 附录A PC hardware Pc的硬件 This appendix describes personal computer (PC) hardware, the platfo ...

  4. Map工具系列-07-TFS变更集提取工具

    所有cs端工具集成了一个工具面板 -打开(IE) Map工具系列-01-Map代码生成工具说明 Map工具系列-02-数据迁移工具使用说明 Map工具系列-03-代码生成BySQl工具使用说明 Map ...

  5. UVA725

    虽然是暴力求解,但是也要观察条件,尽量提高效率.如本题,原本要枚举10个数,但是分析可知通过枚举fghij就可以了. #include<stdio.h> #include<strin ...

  6. struts-hibernate-ajax完成区县和街道级联下拉框功能

    前言:这次dao用的是hibernate,控制层和显示层用的是struts,页面用的是ajax... 啰嗦:我做这个用了很久,用了2周,难点没破解的地方,hibernate的多对一关系生成实体类中属性 ...

  7. 自制-随机生成不重复的数组 --算法,egret平台下的TS code

    感觉这个算法经常会用到,前段时间写过一次,现在push出来.原理是有两个数组,一个数组存放随机数,然后从另一个数组提取相关的数,然后把另一个数组的大小-1,remove掉这个数,unity里也是这个原 ...

  8. [AR+Vuforia]学习笔记

    若项目中导入了多个数据库对象,则需要在ARCamera中手动指定需要加载的对象:

  9. cross_domain

    要传参数的页面 引用cross_domain.js  这个是另外一个工程(m)的地址 <script type="text/javascript" src="htt ...

  10. 数据库mysql 基本命令

    .....= =.... 进入mysql: mysql -uroot ; 创建一个数据库: create database [数据库名字]; (注意最后的分号不能漏) 删除一个数据库:drop dat ...