上傳圖片手機接口,mvc代碼

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);
            }
        }
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章