上传图片手机接口,mvc代码

来源:互联网 发布:600718大数据 编辑:程序博客网 时间:2024/04/29 19:43
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);
            }
        }
0 0
原创粉丝点击