public FileReceptionRequest ObtieneListaImages() { FileReceptionRequest frr = new FileReceptionRequest(); List <DataFile> listdatafile = new List <DataFile>(); Compression compression = new Compression(); try { //string directorio = @"C:\Users\gvazquez\Documents\TestDIrectorySaveFile\15396402931_20190131\ImagenesPosdata1\"; string directorio = @"C:\Users\Giovanna\Pictures\Saved Pictures\"; //string[] ficheros = Directory.GetFiles(directorio); foreach (string file in Directory.GetFiles(directorio)) { DataFile df = new DataFile(); byte[] bytes = compression.Compress(File.ReadAllBytes(file)); df.File = bytes; string[] s = file.Split('\\'); df.Name = s[s.Length - 1]; df.TypeOfEvidence = "E1"; df.FileCreationDate = DateTime.Now; listdatafile.Add(df); } frr.IdStore = "33"; frr.IdSync = "154916079533"; frr.TypeFile = "F001"; frr.Files = listdatafile; } catch (Exception ex) { frr.TypeFile = ex.Message; frr.IdStore = ex.StackTrace; } return(frr); }
public ResponseBase FileReception(FileReceptionRequest request) { ResponseBase response = new ResponseBase(); Compression compression = new Compression(); DataTable dt = new DataTable(); try { string idsync = request.IdSync; string idstore = request.IdStore; string typefile = request.TypeFile; List <DataFile> filedatalist = request.Files; bool idsyncExist = ValidateIdSync(idsync, idstore); bool typefileValid = typefile.Contains("F001"); //evidencia fotografica .jpg o .jpeg string pathSaveFile = ConfigurationManager.AppSettings["URLFilesSaved"].ToString(); string directoryName = DateTime.Now.ToString("yyyy") + @"\" + DateTime.Now.ToString("yyyyMM") + @"\" + idsync; pathSaveFile = Path.Combine(pathSaveFile, directoryName); if (idsyncExist && typefileValid) { try { if (!Directory.Exists(pathSaveFile)) { // Try to create the directory. DirectoryInfo di = Directory.CreateDirectory(pathSaveFile); } foreach (DataFile file in filedatalist) { if (file.Name.Contains(".jpg") || file.Name.Contains(".jpeg")) { //decompress , convert byte[] to file(image) and save file, save into databese byte[] decompressFile = compression.Decompress(file.File); byte[] img = default(byte[]); using (FileStream fs = new FileStream(Path.Combine(pathSaveFile, file.Name), FileMode.Create, FileAccess.ReadWrite, FileShare.Read)) { fs.Write(decompressFile, 0, decompressFile.Length); } using (FileStream FS = new FileStream(Path.Combine(pathSaveFile, file.Name), FileMode.Open, FileAccess.Read)) { img = new byte[FS.Length]; //create a byte array with size of user select file stream length FS.Read(img, 0, Convert.ToInt32(FS.Length)); } /* FileStream FS = new FileStream(Path.Combine(pathSaveFile, file.Name), FileMode.Open, FileAccess.Read); //create a file stream object associate to user selected file * byte[] img = new byte[FS.Length]; //create a byte array with size of user select file stream length * FS.Read(img, 0, Convert.ToInt32(FS.Length));}*/ SaveDetailIntoDB(idsync, idstore, pathSaveFile, file.Name, file.TypeOfEvidence, file.FileCreationDate, img); //proceso de guardado response.Code = "S001"; response.Success = true; response.Message = "Proceso exitoso. "; } else { response.Code = "A002"; response.Success = false; response.Message = "Error al determinar el tipo de archivo permitido."; break; } } } catch (Exception ex) { response.Code = "A000"; response.Success = false; response.Message = "Error en el proceso. " + ex.Message; } } else { response.Code = "A001"; response.Success = false; response.Message = "Clave de sincronización no válida o Error al determinar el tipo de archivo por recibir."; } } catch (Exception ex) { response.Code = "A000"; response.Success = false; response.Message = "Error en el proceso. " + ex.StackTrace + ". " + ex.Message; } return(response); }