Example #1
0
        /// <summary>
        /// Méthode statique de récupération des fichiers dans un dossier de ressources de l'utilisateur.
        /// </summary>
        /// <param name="_TYPE"><code>CYS_STREAM_TYPE</code> correspondant au dossier cible dans le dossier de ressources de l'utilisateur.</param>
        /// <param name="_SESSION">Session de l'utilisateur courant.</param>
        /// <returns><code>List[CYS_STREAM]</code> correspondant à la liste des flux de fichiers récupérés dans le dossier.</returns>
        public static List<CYS_STREAM> DIR(CYS_STREAM_TYPE _TYPE, HttpSessionState _SESSION)
        {
            List<CYS_STREAM> _list = new List<CYS_STREAM>();

            try
            {
                int _id = Convert.ToInt32(_SESSION.GET_AND_DECRYPT(CYS_SESSION_TAGS.SESSION_LOGGED_S_IDCLIENT));

                BUILD(_id);

                if (!Directory.Exists(HttpContext.Current.Server.MapPath(RESOURCES + GET_PATH_FROM_TYPE(_TYPE, _id)))) throw new Exception();

                foreach (var file in Directory.GetFiles(HttpContext.Current.Server.MapPath(RESOURCES + GET_PATH_FROM_TYPE(_TYPE, _id))))
                {
                    var _elem = FILE(file, _TYPE, _id);
                    if (_elem == null) continue;
                    _list.Add(_elem);
                }

                return _list;
            }
            catch (Exception ex)
            {
                throw new ApplicationException(String.Empty, ex);
            }
        }
Example #2
0
        /// <summary>
        /// Méthode statique de constuction du flux de fichier.
        /// </summary>
        /// <param name="_PATH">Chaîne de caractère contenant le chemin du fichier.</param>
        /// <param name="_TYPE"><code>CYS_STREAM_TYPE</code> correspondant au dossier cible dans le dossier de ressources de l'utilisateur.</param>
        /// <param name="_ID">Identifiant de l'utilisateur en base de données.</param>
        /// <returns><code>CYS_STREAM</code> correspondant au flux du fichier reçu par le serveur.</returns>
        public static CYS_STREAM FILE(string _PATH, CYS_STREAM_TYPE _TYPE, int _ID)
        {
            CYS_STREAM _elem = null;
            long n = 0;
            try
            {
                FileInfo fi = new FileInfo(_PATH);
                try { var a = ((CYS_STREAM_EXT)Enum.Parse(typeof(CYS_STREAM_EXT), fi.Extension.Replace(".", String.Empty).ToUpperInvariant())); }
                catch (Exception ex) { return _elem; }
                if (!Int64.TryParse(Path.GetFileNameWithoutExtension(_PATH), out n)) return _elem;
                using (Stream f = File.OpenRead(_PATH))
                {
                    _elem = new CYS_STREAM
                    {
                        CHOSEN = false,
                        DIR_PATH = GET_PATH_FROM_TYPE(_TYPE, _ID),
                        EXTENSION = ((CYS_STREAM_EXT)Enum.Parse(typeof(CYS_STREAM_EXT), fi.Extension.Replace(".", String.Empty).ToUpperInvariant())),
                        ID = Convert.ToInt64(Path.GetFileNameWithoutExtension(_PATH)),
                        MIME = GET_MIME_FROM_EXT(((CYS_STREAM_EXT)Enum.Parse(typeof(CYS_STREAM_EXT), fi.Extension.Replace(".", String.Empty).ToUpperInvariant()))),
                        NAME = Path.GetFileNameWithoutExtension(_PATH),
                        SAVED = true,
                        STREAM = GET_BYTES(f),
                        TYPE = _TYPE
                    };

                    return _elem;
                }
            }
            catch (Exception ex)
            {
                throw new ApplicationException(String.Empty, ex);
            }
        }
Example #3
0
        /// <summary>
        /// TODO : Prévoir le mode multiple.
        /// Méthode statique de récéption des fichiers envoyés par le composant <code>CYS_UPLOAD</code>.
        /// </summary>
        /// <param name="_FILES">Liste des fichiers envoyés par le formulaire.</param>
        /// <param name="_TYPE"><code>CYS_STREAM_TYPE</code> correspondant au dossier cible dans le dossier de ressources de l'utilisateur.</param>
        /// <param name="_SESSION">Session de l'utilisateur courant.</param>
        /// <returns><code>CYS_STREAM</code> correspondant au flux du fichier reçu par le serveur.</returns>
        public static CYS_STREAM RECEIVE(HttpFileCollection _FILES, CYS_STREAM_TYPE _TYPE, HttpSessionState _SESSION)
        {
            CYS_STREAM _elem = null;

            try
            {
                int _id = Convert.ToInt32(_SESSION.GET_AND_DECRYPT(CYS_SESSION_TAGS.SESSION_LOGGED_S_IDCLIENT));
                BUILD(_id);

                if (!Directory.Exists(HttpContext.Current.Server.MapPath(RESOURCES + GET_PATH_FROM_TYPE(_TYPE, _id)))) throw new Exception();

                for (int i = 0; i < _FILES.Count; i++)
                {
                    if (!GET_EXT_FROM_MIME(_FILES[i].ContentType).HasValue) continue;
                    if (_FILES[i].ContentLength > MAX_FILE_SIZE) continue;
                    if (!FILE_RIGHTS.Any(x => ((x.Key.Equals(_TYPE)) && (x.Value.Contains(GET_EXT_FROM_MIME(_FILES[i].ContentType).Value))))) continue;

                    _elem = new CYS_STREAM(_FILES[i].InputStream, GET_EXT_FROM_MIME(_FILES[i].ContentType).Value, _TYPE, _SESSION);

                }

                return _elem;
            }
            catch (Exception ex)
            {
                throw new ApplicationException(String.Empty, ex);
            }
        }
Example #4
0
 /// <summary>
 /// 
 /// </summary>
 /// <param name="_type"></param>
 /// <param name="_id"></param>
 /// <returns></returns>
 public static string GET_PATH_FROM_TYPE(CYS_STREAM_TYPE _type, int _id)
 {
     switch (_type)
     {
         case CYS_STREAM_TYPE.S_FILES_BASE:
             return _id + "/";
         case CYS_STREAM_TYPE.S_FILES_CC:
             return GET_PATH_FROM_TYPE(CYS_STREAM_TYPE.S_FILES_BASE, _id) + "CC/";
         case CYS_STREAM_TYPE.S_FILES_CE:
             return GET_PATH_FROM_TYPE(CYS_STREAM_TYPE.S_FILES_BASE, _id) + "CE/";
         case CYS_STREAM_TYPE.S_FILES_CRS:
             return GET_PATH_FROM_TYPE(CYS_STREAM_TYPE.S_FILES_BASE, _id) + "CRS/";
         case CYS_STREAM_TYPE.S_FILES_CRS_LOGO:
             return GET_PATH_FROM_TYPE(CYS_STREAM_TYPE.S_FILES_BASE, _id) + "CRS/LOGO/";
         case CYS_STREAM_TYPE.S_FILES_CRS_FOND:
             return GET_PATH_FROM_TYPE(CYS_STREAM_TYPE.S_FILES_BASE, _id) + "CRS/FOND/";
         case CYS_STREAM_TYPE.S_FILES_PA:
             return GET_PATH_FROM_TYPE(CYS_STREAM_TYPE.S_FILES_BASE, _id) + "PA/";
         case CYS_STREAM_TYPE.S_FILES_PA_FOND:
             return GET_PATH_FROM_TYPE(CYS_STREAM_TYPE.S_FILES_BASE, _id) + "PA/FOND/";
         case CYS_STREAM_TYPE.S_FILES_PA_LOGO:
             return GET_PATH_FROM_TYPE(CYS_STREAM_TYPE.S_FILES_BASE, _id) + "PA/LOGO/";
         case CYS_STREAM_TYPE.S_FILES_PJ:
             return GET_PATH_FROM_TYPE(CYS_STREAM_TYPE.S_FILES_BASE, _id) + "PJ/";
         case CYS_STREAM_TYPE.S_FILES_PJ_IMAGE:
             return GET_PATH_FROM_TYPE(CYS_STREAM_TYPE.S_FILES_BASE, _id) + "PJ/IMAGE/";
         case CYS_STREAM_TYPE.S_FILES_PJ_PROTOCOLE:
             return GET_PATH_FROM_TYPE(CYS_STREAM_TYPE.S_FILES_BASE, _id) + "PJ/PROTOCOLE";
         case CYS_STREAM_TYPE.S_FILES_PR:
             return GET_PATH_FROM_TYPE(CYS_STREAM_TYPE.S_FILES_BASE, _id) + "PR/";
         case CYS_STREAM_TYPE.S_FILES_R0:
             return GET_PATH_FROM_TYPE(CYS_STREAM_TYPE.S_FILES_BASE, _id) + "R0/";
         case CYS_STREAM_TYPE.S_FILES_R1:
             return GET_PATH_FROM_TYPE(CYS_STREAM_TYPE.S_FILES_BASE, _id) + "R1/";
         case CYS_STREAM_TYPE.S_FILES_R2:
             return GET_PATH_FROM_TYPE(CYS_STREAM_TYPE.S_FILES_BASE, _id) + "R2/";
         case CYS_STREAM_TYPE.S_FILES_R3:
             return GET_PATH_FROM_TYPE(CYS_STREAM_TYPE.S_FILES_BASE, _id) + "R3/";
         case CYS_STREAM_TYPE.S_FILES_R3R:
             return GET_PATH_FROM_TYPE(CYS_STREAM_TYPE.S_FILES_BASE, _id) + "R3R/";
         case CYS_STREAM_TYPE.S_FILES_R3RI:
             return GET_PATH_FROM_TYPE(CYS_STREAM_TYPE.S_FILES_BASE, _id) + "R3RI/";
         default:
             return String.Empty;
     }
 }
Example #5
0
 /// <summary>
 /// Méthode réalisant un dossier de ressources dans l'arborescence de l'utilisateur, s'il n'éxiste pas.
 /// </summary>
 /// <param name="_type"><code>CYS_STREAM_TYPE</code> désignant le dossier à réaliser.</param>
 /// <param name="_id">Identifiant de l'utilisateur en base de données.</param>
 private static void BUILD_DIR(CYS_STREAM_TYPE _type, int _id)
 {
     if (!Directory.Exists(HttpContext.Current.Server.MapPath(RESOURCES + GET_PATH_FROM_TYPE(_type, _id))))
         Directory.CreateDirectory(HttpContext.Current.Server.MapPath(RESOURCES + GET_PATH_FROM_TYPE(_type, _id)));
 }
Example #6
0
 public CYS_STREAM(Stream _STREAM, CYS_STREAM_EXT _EXTENSION, CYS_STREAM_TYPE _TYPE, HttpSessionState _SESSION)
 {
     try
     {
         ID = DateTime.Now.Ticks;
         STREAM = GET_BYTES(_STREAM);
         TYPE = _TYPE;
         MIME = GET_MIME_FROM_EXT(_EXTENSION);
         DIR_PATH = GET_PATH_FROM_TYPE(_TYPE, Convert.ToInt32(_SESSION.GET_AND_DECRYPT(CYS_SESSION_TAGS.SESSION_LOGGED_S_IDCLIENT)));
         NAME = ID.ToString();
         EXTENSION = _EXTENSION;
         SAVED = false;
         CHOSEN = false;
     }
     catch (Exception ex)
     {
         throw new ApplicationException(String.Empty, ex);
     }
 }