Пример #1
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);
            }
        }
Пример #2
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);
            }
        }