string returnMsg = string.Empty; string fileName = string.Empty; bool isSuccess = false; foreach (string file in Request.Files) { try { HttpPostedFileBase hpf = Request.Files[file] as HttpPostedFileBase; string fileExt = Path.GetExtension(hpf.FileName); float fileSize = hpf.ContentLength / 1024; if (hpf.ContentLength == 0) continue; if (fileExt.Equals(".doc")) { if (fileSize > 500) { returnMsg = "你上传的简历尺寸过大, (范围:1k - 500k)"; isSuccess = false; } else { isSuccess = true; } } else { if (fileSize > 50) { returnMsg = "你上传的照片尺寸过大, (范围:1k - 50k)"; isSuccess = false; } else { isSuccess = true; } } // 存储到目录 if (isSuccess) { fileName = Guid.NewGuid().ToString().Replace("-", "") + Path.GetExtension(hpf.FileName); string savedFile = Path.Combine(AppDomain.CurrentDomain.BaseDirectory + user.FOLDER.Trim('/').Replace("/", "//") + "//", fileName); hpf.SaveAs(savedFile); returnMsg = fileName; Byte[] imgFileByteArray = null; Byte[] docFileByteArray = null; if (!Path.GetExtension(hpf.FileName).Equals(".doc")) { // img存储到数据库 user.PICFILE = fileName; Stream imgStream = hpf.InputStream; imgFileByteArray = new Byte[hpf.ContentLength]; imgStream.Read(imgFileByteArray, 0, hpf.ContentLength); imgStream.Close(); // doc存储到数据库 user.DOCFILE = user.DOCFILE.Replace("/"", ""); string filePath = AppDomain.CurrentDomain.BaseDirectory + "/Upload/Doc/".Trim('/').Replace("/", "//") + "//" + user.DOCFILE; Stream docStream = System.IO.File.OpenRead(filePath); docFileByteArray = new Byte[docStream.Length]; docStream.Read(docFileByteArray, 0, docFileByteArray.Length); docStream.Close(); //SP.TGSUserAdd(user, imgFileByteArray, docFileByteArray); //SP.MyTGSUserAdd(user, imgFileByteArray, docFileByteArray); returnMsg = "信息保存成功!"; } } //SP.Test(1233, "Glory", FileByteArray); } catch (Exception ex) { returnMsg = "信息保存失败" + ex.Message; } } return Json(new { result = returnMsg, isSuccess = isSuccess}, "text/html"); 数据库存储过程(oracle) /// <summary> /// 用户增加 /// </summary> /// <param name="strUserName">用户名</param> /// <param name="strIdCard">ID身份证编号</param> /// <param name="intEduid">学历</param> /// <param name="intSex">性别</param> /// <param name="strMobile">手机号码</param> /// <param name="strAddress">地址</param> /// <param name="intBanktype">银行类型</param> /// <param name="strBankAccounts">银行帐号</param> /// <param name="intAreaId"></param> /// <param name="intPlaceId">职位ID</param> /// <param name="intWageId">薪资ID</param> /// <param name="strPicFile">图片文件</param> /// <param name="bytePic">二进制图片文件</param> /// <param name="strDocFile">Doc文件</param> /// <param name="byteDoc">二进制Doc文件</param> /// <param name="strApplicant">申请人</param> /// <param name="strApplyDesc"></param> /// <param name="intUserId">用户ID</param> /// <returns></returns> public static void TGSUserAdd(UserInfo user, byte[] imgFileByteArray, byte[] docFileByteArray) { try { OralConn.Open(); OracleTransaction tx = OralConn.BeginTransaction(); OracleCommand cmd = OralConn.CreateCommand(); cmd.Transaction = tx; // img cmd.CommandText = "declare imgBlob blob; begin dbms_lob.createtemporary(imgBlob, false, 0); :tempblob := imgBlob; end;"; cmd.Parameters.Add(new OracleParameter("tempblob", OracleType.Blob)).Direction = ParameterDirection.Output; cmd.ExecuteNonQuery(); OracleLob imgLob = (OracleLob)cmd.Parameters[0].Value; imgLob.BeginBatch(OracleLobOpenMode.ReadWrite); imgLob.Write(imgFileByteArray, 0, imgFileByteArray.Length); imgLob.EndBatch(); cmd.Parameters.Clear(); //doc cmd.CommandText = "declare docBlob blob; begin dbms_lob.createtemporary(docBlob, false, 0); :tempblob := docBlob; end;"; cmd.Parameters.Add(new OracleParameter("tempblob", OracleType.Blob)).Direction = ParameterDirection.Output; cmd.ExecuteNonQuery(); OracleLob docLob = (OracleLob)cmd.Parameters[0].Value; docLob.BeginBatch(OracleLobOpenMode.ReadWrite); docLob.Write(docFileByteArray, 0, docFileByteArray.Length); docLob.EndBatch(); cmd.Parameters.Clear(); //Call sp cmd.CommandText = "TGS_PM.TGS_User_Add"; cmd.CommandType = CommandType.StoredProcedure; cmd.Parameters.Add(new OracleParameter("v_username", OracleType.NVarChar)).Value = user.USERNAME; cmd.Parameters.Add(new OracleParameter("v_IDCard", OracleType.NVarChar)).Value = user.IDCARD; cmd.Parameters.Add(new OracleParameter("v_EduID", OracleType.Number)).Value = user.EDU; cmd.Parameters.Add(new OracleParameter("v_SEX", OracleType.Number)).Value = user.SEX; cmd.Parameters.Add(new OracleParameter("v_Mobile", OracleType.NVarChar)).Value = user.MOBILE; cmd.Parameters.Add(new OracleParameter("v_Address", OracleType.NVarChar)).Value = user.ADDRESS; cmd.Parameters.Add(new OracleParameter("v_BankType", OracleType.Number)).Value = user.BANKTYPE; cmd.Parameters.Add(new OracleParameter("v_BankAccounts", OracleType.NVarChar)).Value = user.BANKACCOUNT; cmd.Parameters.Add(new OracleParameter("v_AreaID", OracleType.Number)).Value = user.AREAID; cmd.Parameters.Add(new OracleParameter("v_PlaceID", OracleType.Number)).Value = user.PLACE; cmd.Parameters.Add(new OracleParameter("v_WageNum", OracleType.Number)).Value = user.WAGE; cmd.Parameters.Add(new OracleParameter("PICFile", OracleType.NVarChar)).Value = user.PICFILE; cmd.Parameters.Add(new OracleParameter("v_PIC", OracleType.Blob)).Value = imgLob; cmd.Parameters.Add(new OracleParameter("DOCFile", OracleType.NVarChar)).Value = user.DOCFILE; cmd.Parameters.Add(new OracleParameter("v_DOC", OracleType.Blob)).Value = docLob; cmd.Parameters.Add(new OracleParameter("v_applicant", OracleType.NVarChar)).Value = user.APPLICANT; cmd.Parameters.Add(new OracleParameter("v_applydesc", OracleType.NVarChar)).Value = user.APPLYDESC; cmd.Parameters.Add(new OracleParameter("v_Result", OracleType.Number)).Direction = ParameterDirection.Output; //cmd.Parameters.Add(new OracleParameter("CUR_RESULT", OracleType.Cursor)).Direction = ParameterDirection.Output; cmd.ExecuteNonQuery(); tx.Commit(); } catch (Exception ex) { OralConn.Close(); throw ex; } finally { OralConn.Close(); } }