public FileUploadResult ProcessUpload(HttpContext context)
        {
            var fileUploadResult = new FileUploadResult();

            if (!ProgressFileUploader.HasFilesToUpload(context))
            {
                return(fileUploadResult);
            }

            var file = new ProgressFileUploader.FileToUpload(context);

            if (String.IsNullOrEmpty(file.FileName) || file.ContentLength == 0)
            {
                throw new InvalidOperationException("Invalid file.");
            }

            if (0 < SetupInfo.MaxImageUploadSize && SetupInfo.MaxImageUploadSize < file.ContentLength)
            {
                throw FileSizeComment.FileImageSizeException;
            }

            if (FileUtility.GetFileTypeByFileName(file.FileName) != FileType.Image)
            {
                throw new UnknownImageFormatException();
            }

            var photoUri = ContactPhotoManager.UploadPhoto(file.InputStream, Convert.ToInt32(context.Request["contactID"]));

            fileUploadResult.Success = true;
            fileUploadResult.Data    = photoUri;

            return(fileUploadResult);
        }
        public FileUploadResult ProcessUpload(HttpContext context)
        {
            var fileUploadResult = new FileUploadResult();

            if (!ProgressFileUploader.HasFilesToUpload(context))
            {
                return(fileUploadResult);
            }

            var file = new ProgressFileUploader.FileToUpload(context);

            String assignedPath;

            Global.GetStore().SaveTemp("temp", out assignedPath, file.InputStream);

            file.InputStream.Position = 0;

            var jObject = ImportFromCSV.GetInfo(file.InputStream, context.Request["importSettings"]);

            jObject.Add("assignedPath", assignedPath);

            fileUploadResult.Success = true;
            fileUploadResult.Data    = Convert.ToBase64String(Encoding.UTF8.GetBytes(jObject.ToString()));

            return(fileUploadResult);
        }
        public FileUploadResult ProcessUpload(HttpContext context)
        {
            var fileUploadResult = new FileUploadResult();

            if (!ProgressFileUploader.HasFilesToUpload(context))
            {
                return(fileUploadResult);
            }

            var file = new ProgressFileUploader.FileToUpload(context);

            String assignedPath;

            Global.GetStore().SaveTemp("temp", out assignedPath, file.InputStream);

            file.InputStream.Position = 0;

            var jObject = ImportFromCSV.GetInfo(file.InputStream);

            jObject.Add("assignedPath", assignedPath);

            fileUploadResult.Success = true;
            fileUploadResult.Data    = jObject.ToString();

            return(fileUploadResult);
        }
        public override FileUploadHandler.FileUploadResult ProcessUpload(HttpContext context)
        {
            var result = new FileUploadResult()
            {
                Success = false
            };

            try
            {
                if (ProgressFileUploader.HasFilesToUpload(context))
                {
                    var settingsID = new Guid(context.Request["SettingsID"]);
                    var settings   = ForumManager.GetSettings(settingsID);
                    var thread     = ForumDataProvider.GetThreadByID(TenantProvider.CurrentTenantID, Convert.ToInt32(context.Request["ThreadID"]));
                    if (thread == null)
                    {
                        return(result);
                    }

                    var forumManager       = settings.ForumManager;
                    var offsetPhysicalPath = string.Empty;
                    forumManager.GetAttachmentVirtualDirPath(thread, settingsID, new Guid(context.Request["UserID"]), out offsetPhysicalPath);

                    var file = new ProgressFileUploader.FileToUpload(context);

                    var newFileName  = GetFileName(file.FileName);
                    var origFileName = newFileName;

                    var i     = 1;
                    var store = forumManager.GetStore();
                    while (store.IsFile(offsetPhysicalPath + "\\" + newFileName))
                    {
                        var ind = origFileName.LastIndexOf(".");
                        newFileName = ind != -1 ? origFileName.Insert(ind, "_" + i.ToString()) : origFileName + "_" + i.ToString();
                        i++;
                    }

                    result.FileName = newFileName;
                    result.FileURL  = store.Save(offsetPhysicalPath + "\\" + newFileName, file.InputStream).ToString();
                    result.Data     = new
                    {
                        OffsetPhysicalPath = offsetPhysicalPath + "\\" + newFileName,
                        FileName           = newFileName,
                        Size        = file.ContentLength,
                        ContentType = file.FileContentType,
                        SettingsID  = settingsID
                    };
                    result.Success = true;
                }
            }
            catch (Exception ex)
            {
                result.Success = false;
                result.Message = ex.Message;
            }

            return(result);
        }
Beispiel #5
0
        public FileUploadResult ProcessUpload(HttpContext context)
        {
            var fileUploadResult = new FileUploadResult();

            if (!ProgressFileUploader.HasFilesToUpload(context))
            {
                return(fileUploadResult);
            }

            var file = new ProgressFileUploader.FileToUpload(context);

            if (String.IsNullOrEmpty(file.FileName) || file.ContentLength == 0)
            {
                throw new InvalidOperationException("Invalid file.");
            }

            if (0 < SetupInfo.MaxImageUploadSize && SetupInfo.MaxImageUploadSize < file.ContentLength)
            {
                fileUploadResult.Success = false;
                fileUploadResult.Message = FileSizeComment.GetFileImageSizeNote(CRMCommonResource.ErrorMessage_UploadFileSize, false).HtmlEncode();
                return(fileUploadResult);
            }

            if (FileUtility.GetFileTypeByFileName(file.FileName) != FileType.Image)
            {
                fileUploadResult.Success = false;
                fileUploadResult.Message = CRMJSResource.ErrorMessage_NotImageSupportFormat.HtmlEncode();
                return(fileUploadResult);
            }


            var contactId  = Convert.ToInt32(context.Request["contactID"]);
            var uploadOnly = Convert.ToBoolean(context.Request["uploadOnly"]);
            var tmpDirName = Convert.ToString(context.Request["tmpDirName"]);
            var photoUri   = "";

            if (contactId != 0)
            {
                photoUri = ContactPhotoManager.UploadPhoto(file.InputStream, contactId, uploadOnly);
            }
            else
            {
                if (String.IsNullOrEmpty(tmpDirName))
                {
                    tmpDirName = Guid.NewGuid().ToString();
                }
                photoUri = ContactPhotoManager.UploadPhoto(file.InputStream, tmpDirName);
            }
            fileUploadResult.Success = true;
            fileUploadResult.Data    = photoUri;

            return(fileUploadResult);
        }
        public override FileUploadResult ProcessUpload(HttpContext context)
        {
            var fileUploadResult = new FileUploadResult();

            if (!ProgressFileUploader.HasFilesToUpload(context))
            {
                return(fileUploadResult);
            }

            var file = new ProgressFileUploader.FileToUpload(context);

            if (String.IsNullOrEmpty(file.FileName) || file.ContentLength == 0)
            {
                throw new InvalidOperationException("Invalid file.");
            }

            if (0 < SetupInfo.MaxUploadSize && SetupInfo.MaxUploadSize < file.ContentLength)
            {
                throw FileSizeComment.FileSizeException;
            }

            if (CallContext.GetData("CURRENT_ACCOUNT") == null)
            {
                CallContext.SetData("CURRENT_ACCOUNT", new Guid(context.Request["UserID"]));
            }


            var fileName = file.FileName.LastIndexOf('\\') != -1
                               ? file.FileName.Substring(file.FileName.LastIndexOf('\\') + 1)
                               : file.FileName;


            var document = new File
            {
                Title         = fileName,
                FolderID      = Global.DaoFactory.GetFileDao().GetRoot(),
                ContentLength = file.ContentLength
            };

            document.ContentType = MimeMapping.GetMimeMapping(document.Title);

            document = Global.DaoFactory.GetFileDao().SaveFile(document, file.InputStream);

            fileUploadResult.Data     = document.ID;
            fileUploadResult.FileName = document.Title;
            fileUploadResult.FileURL  = document.FileUri;


            fileUploadResult.Success = true;


            return(fileUploadResult);
        }
Beispiel #7
0
        public override FileUploadResult ProcessUpload(HttpContext context)
        {
            try
            {
                if (!ProgressFileUploader.HasFilesToUpload(context))
                {
                    throw new InvalidOperationException(FilesCommonResource.ErrorMassage_EmptyFile);
                }

                var postedFile    = new ProgressFileUploader.FileToUpload(context);
                var contentLength = postedFile.ContentLength;

                var fileName = postedFile.FileName;
                if (fileName.LastIndexOf('\\') != 0)
                {
                    fileName = fileName.Substring(fileName.LastIndexOf('\\') + 1);
                }
                fileName = Global.ReplaceInvalidCharsAndTruncate(fileName);

                var inputStream = postedFile.InputStream;
                var contentType = postedFile.FileContentType;

                var folderID = context.Request[UrlConstant.FolderId];

                var file = DocumentUtils.UploadFile(folderID, fileName, contentLength, contentType, inputStream);

                using (var ms = new MemoryStream())
                {
                    var serializer = new DataContractJsonSerializer(typeof(File));
                    serializer.WriteObject(ms, file);
                    ms.Seek(0, SeekOrigin.Begin);

                    return(new FileUploadResult
                    {
                        Success = true,
                        Data = Encoding.UTF8.GetString(ms.GetBuffer(), 0, (int)ms.Length)
                    });
                }
            }
            catch (Exception ex)
            {
                return(new FileUploadResult
                {
                    Success = false,
                    Message = ex.Message,
                });
            }
        }
Beispiel #8
0
        public override FileUploadResult ProcessUpload(HttpContext context)
        {
            if (!ASC.Core.SecurityContext.AuthenticateMe(CookiesManager.GetCookies(CookiesType.AuthKey)))
            {
                return(new FileUploadResult
                {
                    Success = false,
                    Message = "Permission denied"
                });
            }

            var result = "";

            try
            {
                if (ProgressFileUploader.HasFilesToUpload(context))
                {
                    var postedFile  = new ProgressFileUploader.FileToUpload(context);
                    var fileName    = postedFile.FileName;
                    var inputStream = postedFile.InputStream;


                    var store   = Data.Storage.StorageFactory.GetStorage(TenantProvider.CurrentTenantID.ToString(), "photo");
                    var storage = StorageFactory.GetStorage();

                    var uid     = context.Request["uid"];
                    var eventID = context.Request["eventID"];

                    var albums = storage.GetAlbums(Convert.ToInt64(eventID), uid);

                    var currentAlbum = 0 < albums.Count ? albums[0] : null;

                    if (currentAlbum == null)
                    {
                        var Event = storage.GetEvent(Convert.ToInt64(eventID));

                        currentAlbum = new Album
                        {
                            Event  = Event,
                            UserID = uid
                        };

                        storage.SaveAlbum(currentAlbum);
                    }

                    if (context.Session["photo_albumid"] != null)
                    {
                        context.Session["photo_albumid"] = currentAlbum.Id;
                    }

                    var fileNamePath = PhotoConst.ImagesPath + uid + "/" + currentAlbum.Id + "/";

                    var currentImageInfo = new ImageInfo();

                    var listFiles = store.ListFilesRelative("", fileNamePath, "*.*", false);
                    context.Session["photo_listFiles"] = listFiles;

                    var fileExtension            = FileUtility.GetFileExtension(fileName);
                    var fileNameWithOutExtension = GetFileName(fileName);
                    var addSuffix = string.Empty;

                    //if file already exists
                    var i = 1;

                    while (CheckFile(listFiles, fileNameWithOutExtension + addSuffix + PhotoConst.THUMB_SUFFIX + fileExtension))
                    {
                        addSuffix = "(" + i.ToString() + ")";
                        i++;
                    }

                    var fileNameThumb   = fileNamePath + fileNameWithOutExtension + addSuffix + PhotoConst.THUMB_SUFFIX + "." + PhotoConst.jpeg_extension;
                    var fileNamePreview = fileNamePath + fileNameWithOutExtension + addSuffix + PhotoConst.PREVIEW_SUFFIX + "." + PhotoConst.jpeg_extension;

                    currentImageInfo.Name          = fileNameWithOutExtension;
                    currentImageInfo.PreviewPath   = fileNamePreview;
                    currentImageInfo.ThumbnailPath = fileNameThumb;

                    var fs = inputStream;

                    try
                    {
                        var reader = new EXIFReader(fs);
                        currentImageInfo.ActionDate = (string)reader[PropertyTagId.DateTime];
                    }
                    catch
                    {
                    }

                    ImageHelper.GenerateThumbnail(fs, fileNameThumb, ref currentImageInfo, store);
                    ImageHelper.GeneratePreview(fs, fileNamePreview, ref currentImageInfo, store);

                    fs.Dispose();

                    var image = new AlbumItem(currentAlbum)
                    {
                        Name          = currentImageInfo.Name,
                        Timestamp     = ASC.Core.Tenants.TenantUtil.DateTimeNow(),
                        UserID        = uid,
                        Location      = currentImageInfo.Name,
                        PreviewSize   = new Size(currentImageInfo.PreviewWidth, currentImageInfo.PreviewHeight),
                        ThumbnailSize = new Size(currentImageInfo.ThumbnailWidth, currentImageInfo.ThumbnailHeight)
                    };

                    storage.SaveAlbumItem(image);

                    currentAlbum.FaceItem = image;
                    storage.SaveAlbum(currentAlbum);

                    var response = image.Id.ToString();

                    var byteArray = System.Text.Encoding.UTF8.GetBytes(response);
                    result = Convert.ToBase64String(byteArray);
                }
            }
            catch (Exception ex)
            {
                return(new FileUploadResult
                {
                    Success = false,
                    Message = ex.Message,
                });
            }

            return(new FileUploadResult
            {
                Success = true,
                Data = "",
                Message = result
            });
        }
Beispiel #9
0
        public override FileUploadResult ProcessUpload(HttpContext context)
        {
            var            file_name  = string.Empty;
            MailAttachment attachment = null;

            try
            {
                if (!SecurityContext.AuthenticateMe(CookiesManager.GetCookies(CookiesType.AuthKey)))
                {
                    throw new UnauthorizedAccessException(MailResource.AttachemntsUnauthorizedError);
                }

                if (ProgressFileUploader.HasFilesToUpload(context))
                {
                    try
                    {
                        var stream_id = context.Request["stream"];
                        var mail_id   = Convert.ToInt32(context.Request["messageId"]);

                        if (mail_id < 1)
                        {
                            throw new AttachmentsException(AttachmentsException.Types.MESSAGE_NOT_FOUND,
                                                           "Message not yet saved!");
                        }

                        if (String.IsNullOrEmpty(stream_id))
                        {
                            throw new AttachmentsException(AttachmentsException.Types.BAD_PARAMS, "Have no stream");
                        }

                        var posted_file = new ProgressFileUploader.FileToUpload(context);

                        file_name = context.Request["name"];

                        attachment = new MailAttachment
                        {
                            fileId   = -1,
                            size     = posted_file.ContentLength,
                            fileName = file_name,
                            streamId = stream_id,
                            tenant   = TenantId,
                            user     = Username
                        };

                        attachment = _mailBoxManager.AttachFile(TenantId, Username, mail_id,
                                                                file_name, posted_file.InputStream, stream_id);

                        return(new FileUploadResult
                        {
                            Success = true,
                            FileName = attachment.fileName,
                            FileURL = attachment.storedFileUrl,
                            Data = attachment
                        });
                    }
                    catch (AttachmentsException e)
                    {
                        string error_message;

                        switch (e.ErrorType)
                        {
                        case AttachmentsException.Types.BAD_PARAMS:
                            error_message = MailScriptResource.AttachmentsBadInputParamsError;
                            break;

                        case AttachmentsException.Types.EMPTY_FILE:
                            error_message = MailScriptResource.AttachmentsEmptyFileNotSupportedError;
                            break;

                        case AttachmentsException.Types.MESSAGE_NOT_FOUND:
                            error_message = MailScriptResource.AttachmentsMessageNotFoundError;
                            break;

                        case AttachmentsException.Types.TOTAL_SIZE_EXCEEDED:
                            error_message = MailScriptResource.AttachmentsTotalLimitError;
                            break;

                        case AttachmentsException.Types.DOCUMENT_NOT_FOUND:
                            error_message = MailScriptResource.AttachmentsDocumentNotFoundError;
                            break;

                        case AttachmentsException.Types.DOCUMENT_ACCESS_DENIED:
                            error_message = MailScriptResource.AttachmentsDocumentAccessDeniedError;
                            break;

                        default:
                            error_message = MailScriptResource.AttachmentsUnknownError;
                            break;
                        }
                        throw new Exception(error_message);
                    }
                    catch (ASC.Core.Tenants.TenantQuotaException)
                    {
                        throw;
                    }
                    catch (Exception)
                    {
                        throw new Exception(MailScriptResource.AttachmentsUnknownError);
                    }
                }
                throw new Exception(MailScriptResource.AttachmentsBadInputParamsError);
            }
            catch (Exception ex)
            {
                return(new FileUploadResult
                {
                    Success = false,
                    FileName = file_name,
                    Data = attachment,
                    Message = ex.Message,
                });
            }
        }