上传图片手机接口,mvc代码
2016-02-27 14:09
148 查看
public String UpLoadImage()
{
HttpPostedFileBase file = Request.Files["Filedata"];//Filedata与手机端命名要一致
jsonResult jr = new jsonResult();
jr.Message = file.FileName;
jr.SuccessFlag = "1";
string bigimgurl = "";
string strerror = "";
string sFilename = "";
int iUserId = 0;
GuestUser gu = new GuestUser();
try
{
using (JZDBContext db = new JZDBContext())
{
gu = db.GuestUsers.SingleOrDefault(p => p.TokenID == TokenID);
if (gu == null)
{
jr.SuccessFlag = "1";
jr.Message = "登录信息不正确,请重新登录。";
return Common.JsonSerialize(jr);
}
iUserId = gu.Id;
}
if (file.FileName != null || file != null)
{
int nFileLen = file.ContentLength;
if (nFileLen == 0)
{
strerror = "没有选择上传图片!";
}
//获取upImage选择文件的扩展名
string extendName = System.IO.Path.GetExtension(file.FileName).ToLower();
//判断是否为图片格式
if (extendName != ".jpg" && extendName != ".jpge" && extendName != ".gif" && extendName != ".bmp" && extendName != ".png")
{
strerror = "图片格式不正确!";
jr.Message = strerror;
return Common.JsonSerialize(jr);
}
byte[] myData = new Byte[nFileLen];
file.InputStream.Read(myData, 0, nFileLen);
Random ra = new Random();
String strTemp = DateTime.Now.ToString("yyMMddHHmmss");
strTemp = strTemp + ra.Next(0, 99).ToString();
sFilename = strTemp + System.IO.Path.GetFileName(file.FileName);
int file_append = 0;
string sSavePath = "/Upload/Images/" + DateTime.Now.ToString("yyyy-MM-dd") + "/big/";
//确认是否存在虚拟目录,不存在则创建
Directory.CreateDirectory(Path.GetDirectoryName(Request.MapPath(sSavePath)));
string bigPath = System.Web.HttpContext.Current.Server.MapPath(sSavePath + sFilename);
if (bigimgurl != "")
{
bigimgurl += "、";
}
bigimgurl += sSavePath + sFilename;
//检查当前文件夹下是否有同名图片,有则在文件名+1
while (System.IO.File.Exists(bigPath))
{
file_append++;
sFilename = strTemp + System.IO.Path.GetFileNameWithoutExtension(file.FileName)
+ file_append.ToString() + extendName;
}
//上传图片到服务器
System.IO.FileStream newFile
= new System.IO.FileStream(bigPath,
System.IO.FileMode.Create, System.IO.FileAccess.Write);
newFile.Write(myData, 0, myData.Length);
newFile.Close();
FileStream fs = new FileStream(Server.MapPath(sSavePath + sFilename), FileMode.Open, FileAccess.Read);
BinaryReader reader = new BinaryReader(fs);
string fileClass;
byte buffer;
byte[] b = new byte[2];
buffer = reader.ReadByte();
b[0] = buffer;
fileClass = buffer.ToString();
buffer = reader.ReadByte();
b[1] = buffer;
fileClass += buffer.ToString();
reader.Close();
fs.Close();
}
else
{
strerror = "没有选择图片!";
jr.Message = strerror;
return Common.JsonSerialize(jr);
}
if(bigimgurl != "")
{
jr.Message = "上传图片成功";
jr.SuccessFlag = "0";
jr.Data = bigimgurl;
return Common.JsonSerialize(jr);
}
catch (Exception ex)
{
jr.Message = ex.Message;
return Common.JsonSerialize(jr);
}
}
{
HttpPostedFileBase file = Request.Files["Filedata"];//Filedata与手机端命名要一致
jsonResult jr = new jsonResult();
jr.Message = file.FileName;
jr.SuccessFlag = "1";
string bigimgurl = "";
string strerror = "";
string sFilename = "";
int iUserId = 0;
GuestUser gu = new GuestUser();
try
{
using (JZDBContext db = new JZDBContext())
{
gu = db.GuestUsers.SingleOrDefault(p => p.TokenID == TokenID);
if (gu == null)
{
jr.SuccessFlag = "1";
jr.Message = "登录信息不正确,请重新登录。";
return Common.JsonSerialize(jr);
}
iUserId = gu.Id;
}
if (file.FileName != null || file != null)
{
int nFileLen = file.ContentLength;
if (nFileLen == 0)
{
strerror = "没有选择上传图片!";
}
//获取upImage选择文件的扩展名
string extendName = System.IO.Path.GetExtension(file.FileName).ToLower();
//判断是否为图片格式
if (extendName != ".jpg" && extendName != ".jpge" && extendName != ".gif" && extendName != ".bmp" && extendName != ".png")
{
strerror = "图片格式不正确!";
jr.Message = strerror;
return Common.JsonSerialize(jr);
}
byte[] myData = new Byte[nFileLen];
file.InputStream.Read(myData, 0, nFileLen);
Random ra = new Random();
String strTemp = DateTime.Now.ToString("yyMMddHHmmss");
strTemp = strTemp + ra.Next(0, 99).ToString();
sFilename = strTemp + System.IO.Path.GetFileName(file.FileName);
int file_append = 0;
string sSavePath = "/Upload/Images/" + DateTime.Now.ToString("yyyy-MM-dd") + "/big/";
//确认是否存在虚拟目录,不存在则创建
Directory.CreateDirectory(Path.GetDirectoryName(Request.MapPath(sSavePath)));
string bigPath = System.Web.HttpContext.Current.Server.MapPath(sSavePath + sFilename);
if (bigimgurl != "")
{
bigimgurl += "、";
}
bigimgurl += sSavePath + sFilename;
//检查当前文件夹下是否有同名图片,有则在文件名+1
while (System.IO.File.Exists(bigPath))
{
file_append++;
sFilename = strTemp + System.IO.Path.GetFileNameWithoutExtension(file.FileName)
+ file_append.ToString() + extendName;
}
//上传图片到服务器
System.IO.FileStream newFile
= new System.IO.FileStream(bigPath,
System.IO.FileMode.Create, System.IO.FileAccess.Write);
newFile.Write(myData, 0, myData.Length);
newFile.Close();
FileStream fs = new FileStream(Server.MapPath(sSavePath + sFilename), FileMode.Open, FileAccess.Read);
BinaryReader reader = new BinaryReader(fs);
string fileClass;
byte buffer;
byte[] b = new byte[2];
buffer = reader.ReadByte();
b[0] = buffer;
fileClass = buffer.ToString();
buffer = reader.ReadByte();
b[1] = buffer;
fileClass += buffer.ToString();
reader.Close();
fs.Close();
}
else
{
strerror = "没有选择图片!";
jr.Message = strerror;
return Common.JsonSerialize(jr);
}
if(bigimgurl != "")
{
jr.Message = "上传图片成功";
jr.SuccessFlag = "0";
jr.Data = bigimgurl;
return Common.JsonSerialize(jr);
}
catch (Exception ex)
{
jr.Message = ex.Message;
return Common.JsonSerialize(jr);
}
}
相关文章推荐
- java设计模式--单例模式
- Java基础知识点4:继承
- JNI用javah命令生成头文件
- C++ 线程安全的singleton如何实现
- Java概述--Java开发实战经典
- Java&Xml教程(十一)JAXB实现XML与Java对象转换
- Java&Xml教程(十一)JAXB实现XML与Java对象转换
- Java&Xml教程(十一)JAXB实现XML与Java对象转换
- (GOF23设计模式)_代理模式_动态代理
- 进度参考代码
- c++(重载、覆盖、隐藏)
- c语言库函数 qsort(快速排序函数)
- java-字符串学习总结
- Python标准库:内置函数classmethod(function)
- javaWEB简单商城项目(四)
- UVA 11971(p335)----Polygon
- 树莓派安装 python3 及 python IDE
- Java的IO流
- 我的Python成长之路---第六天---Python基础(19)---2016年2月20日(晴)
- 【CI学习笔记】一个用PHP写的,简单的MVC实例