Пример #1
0
    //Button lưu lại thông tin
    protected void LinkButton_Post_Click(object sender, EventArgs e)
    {
        if (SessionUtility.User != null)
        {
            //Ẩn các thông báo trước đó
            ucMessage.HideAll();

            DBEntities db = new DBEntities();
            //Ẩn các thông báo trước đó
            ucMessage.HideAll();

            //Tìm 1 item thích hợp để cập nhật
            var item = db.Users.Where(x => x.UserID == SessionUtility.User.UserID).FirstOrDefault();

            //Nếu không có thì báo lỗi kết thúc
            if (item == null)
            {
                ucMessage.ShowError("Dữ liệu này không còn tồn tại");
                return;
            }
            //Lấy ra giá trị người nhập
            string fullName  = input_FullName.Value.Trim();
            string email     = input_Email.Value.Trim();
            string mobi      = input_Mobi.Value.Trim();
            string address   = input_Address.Value.Trim();
            string facebook  = input_Facebook.Value.Trim();
            bool   statusJob = radio_GotJob.Checked ? true : false;
            string school    = input_School.Value.Trim();


            int graduationYear = input_GraduationYear.Value.Trim().ToInt();

            if (IsValid(fullName, email, mobi, address, facebook, school, graduationYear))
            {
                //Upload hình
                string avatar = string.Empty;
                string thumb  = string.Empty;
                //=====kiểm tra tính hợp lệ của hình ảnh=====
                if (FileUpload_Avatar.FileName != string.Empty)
                {
                    //Kiểm tra đuôi hình hợp lệ
                    string validExtension = ".jpg.jpeg.png.gif.bmp.ico";
                    //Lấy đuôi hình
                    string fileExtension = Path.GetExtension(FileUpload_Avatar.FileName.ToLower());
                    if (!validExtension.Contains(fileExtension))
                    {
                        ucMessage.ShowError("Hình không hợp lệ, loại hình cho phép là:jpg, jpeg, png, gif, bmp, ico");
                        return;
                    }

                    //Kiểm tra dung lượng file thích hợp (file <= 3MB)
                    int validSize = 1024 * 1024 * 3;
                    int fileSize  = FileUpload_Avatar.FileBytes.Length;
                    if (fileSize > validSize)
                    {
                        ucMessage.ShowError("Dung lượng hình phải >= 3MB");
                        return;
                    }

                    Exception     error         = null;
                    UploadUtility uploadUtility = new UploadUtility();
                    uploadUtility.FileUpload           = FileUpload_Avatar;
                    uploadUtility.FolderSave           = "~/fileuploads/Dev/Avatar";
                    uploadUtility.FullMaxWidth         = 1000;
                    uploadUtility.ThumbMaxWidth        = 400;
                    uploadUtility.MaxFileSize          = 1024 * 1024 * 3;        //Với 3 là 3MB
                    uploadUtility.AutoGenerateFileName = true;
                    uploadUtility.UploadImage(ref avatar, ref thumb, ref error); //Tham số đầu ra ref

                    //Nếu có úp hình, thì mới cập nhật hình mới
                    div_Avatar.Attributes.Add("style", "background-image: url('{0}');".StringFormat(avatar));
                }

                //============UPLOAD AVATAR COMPANY===============\\
                string avatarCompany = string.Empty;
                string thumbCompany  = string.Empty;

                if (FileUpload_AvatarCompany.FileName != string.Empty)
                {
                    //Kiểm tra đuôi hình hợp lệ
                    string validExtension = ".jpg.jpeg.png.gif.bmp.ico";
                    //Lấy đuôi hình
                    string fileExtension = Path.GetExtension(FileUpload_AvatarCompany.FileName.ToLower());
                    if (!validExtension.Contains(fileExtension))
                    {
                        ucMessage.ShowError("Hình không hợp lệ, loại hình cho phép là:jpg, jpeg, png, gif, bmp, ico");
                        return;
                    }

                    //Kiểm tra dung lượng file thích hợp (file <= 3MB)
                    int validSize = 1024 * 1024 * 3;
                    int fileSize  = FileUpload_AvatarCompany.FileBytes.Length;
                    if (fileSize > validSize)
                    {
                        ucMessage.ShowError("Dung lượng hình phải >= 3MB");
                        return;
                    }

                    Exception     error         = null;
                    UploadUtility uploadUtility = new UploadUtility();
                    uploadUtility.FileUpload           = FileUpload_AvatarCompany;
                    uploadUtility.FolderSave           = "~/fileuploads/Company/Avatar";
                    uploadUtility.FullMaxWidth         = 1000;
                    uploadUtility.ThumbMaxWidth        = 400;
                    uploadUtility.MaxFileSize          = 1024 * 1024 * 3;                      //Với 3 là 3MB
                    uploadUtility.AutoGenerateFileName = true;
                    uploadUtility.UploadImage(ref avatarCompany, ref thumbCompany, ref error); //Tham số đầu ra ref

                    //Nếu có úp hình, thì mới cập nhật hình mới
                    Company_Avatar.Attributes.Add("style", "background-image: url('{0}');".StringFormat(avatarCompany));
                }

                ///Nếu User có up hình thì mới cập nhật hình mới
                if (avatar != string.Empty)
                {
                    item.Avatar = avatar;
                }

                //Lấy ra danh sách chọn kĩ năng
                var    listboxSelected = ListBox_Skill.Items.Cast <ListItem>().Where(i => i.Selected);
                string listSkill       = string.Empty;
                foreach (var itemSelected in listboxSelected)
                {
                    listSkill += itemSelected.Value + ";";
                }
                if (listSkill.Contains(";"))
                {
                    listSkill = listSkill.Remove(listSkill.Length - 1, 1);
                }

                //===================>Thêm vào bảng công ty
                //Cập nhật lại các giá trị

                item.FullName       = fullName;
                item.Email          = email;
                item.Mobi           = mobi;
                item.Address        = address;
                item.Facebook       = facebook;
                item.GraduationYear = graduationYear;
                item.StatusJob      = statusJob;
                item.CreateTime     = DateTime.Now;

                item.NameSchool = school;
                item.TagSkill   = listSkill;


                //Nếu đã đi làm thì lấy thông tin lưu vào company trong tbl_user
                if (radio_GotJob.Checked)
                {
                    //lấy ra các danh sách công ty
                    string companyName    = input_CompanyName.Value.Trim();
                    string companyAddress = input_CompanyAddress.Value.Trim();
                    string companyWeb     = input_CompanyWeb.Value.Trim();
                    string positionWork   = textarea_PositionWork.Value.Trim();

                    if (IsValidCompany(companyName, companyAddress, companyWeb, positionWork))
                    {
                        //lấy ra id nếu người dùng chọn từ gợi ý
                        item.PositionWork = positionWork;

                        int    idCompany         = input_IDCompanyAjax.Value.Trim().ToInt();
                        string avatarCompanyAjax = input_AvatarCompanyAjax.Value.Trim();

                        if (item.CompanyID == null && idCompany == 0)
                        {
                            if (avatarCompany.IsNullOrEmpty() && avatarCompanyAjax == string.Empty)
                            {
                                ucMessage.ShowError("Vui lòng up ảnh đại diện công ty");
                                return;
                            }

                            Company company = new Company();
                            company.Title   = companyName;
                            company.Address = companyAddress;
                            company.Website = companyWeb;
                            company.Avatar  = avatarCompany;
                            company.Status  = true;


                            try
                            {
                                db.Companies.Add(company);
                                db.SaveChanges();

                                //Ánh xạ ID của compamy vừa thêm vào bảng user
                                item.CompanyID = company.CompanyID;
                            }
                            catch (Exception)
                            {
                                ucMessage.ShowError("Lỗi hệ thống! Vui lòng thử lại");
                                return;
                            }
                        }
                        if (idCompany != 0)
                        {
                            item.CompanyID = idCompany;
                        }

                        if (positionWork.IsNullOrEmptyOrWhiteSpaces())
                        {
                            ucMessage.ShowError("Đăng tin không thành công, vui lòng nhập vị trí công việc của bạn");
                            return;
                        }
                    }
                    else
                    {
                        return;
                    }
                }

                //Nếu đã đi làm thì reset thông tin company trong tbl_user
                if (radio_NotJob.Checked)
                {
                    item.StatusJob = statusJob;
                    item.CompanyID = null;
                }

                //Lưu lại
                db.SaveChanges();
                //Cập nhật lại session
                SessionUtility.User = item;

                Response.Redirect("~/Post.aspx?messagetype={0}&message={1}".StringFormat("success", "Xin chúc mừng dữ liệu của bạn đã được lưu thành công!"));
            }
        }
        else
        {
            Reset();
            ucMessage.ShowInfo("Bạn vui lòng đăng nhập để thực hiện chức năng này");
            return;
        }
    }
Пример #2
0
    public static bool UploadImage(FileUpload fileUpload, string folderUpload, ref string avatar, ref int width, ref int height, ref Exception error)
    {
        //1. Lấy tên file đã chọn
        string fileName = fileUpload.FileName;

        //2. Nếu tên file = rỗng, thì trả về false
        if (fileName == string.Empty)
        {
            return(false);
        }

        //3. Kiểm tra đuôi hình, nếu không hợp lệ thì báo lỗi
        if (!fileName.IsImageFileUrl())
        {
            error = new Exception("Vui lòng chọn hình có đuôi trong danh sách: .jpg.jpeg.gif.bmp.png");
            return(false);
        }

        //4. Kiểm tra dung lượng file, nếu vượt quá 3Mb thì báo lỗi
        if (fileUpload.PostedFile.ContentLength > 3 * 1024 * 1024)
        {
            error = new Exception("Vui lòng chọn file <= 3Mb");
            return(false);
        }

        //Cấu hình upload
        UploadUtility upload = new UploadUtility();

        upload.FileUpload           = fileUpload;
        upload.FolderSave           = folderUpload;
        upload.FullMaxWidth         = 1000;
        upload.ThumbMaxWidth        = 400;
        upload.MaxFileSize          = 3 * 1024 * 1024;
        upload.AutoGenerateFileName = true;

        string thumb = string.Empty;

        //Upload và bắt lỗi nếu có
        upload.UploadImage(ref avatar, ref thumb, ref error);

        //Nếu có lỗi upload, thì trả về false
        if (error != null)
        {
            return(false);
        }

        //9 Convert url sang đường dẫn vật lý
        string physicalUrl = HostingEnvironment.MapPath(avatar);

        //10. Save hình lên Server
        try
        {
            //10.1 Tạo hình từ FileUpload
            Bitmap bitmap = new Bitmap(physicalUrl);

            //10.4 Trả thông số ra ngoài
            width  = bitmap.Width;
            height = bitmap.Height;
        }
        //Bắt lỗi lưu vào ex (nếu có)
        catch (Exception ex)
        {
            //Xuất lỗi bắt được (ex) ra ngoài theo biến (error)
            error = ex;
            return(false);
        }

        //11. Trả về true sau khi đã upload hình thành công
        return(true);
    }