public string GerarFotoArquivoNome(UploadFotoModel model) { var auxNomeExt = model.file.Split('.'); if (auxNomeExt.Length > 1) { string nomeNovo = auxNomeExt[0]; var auxNomePos = auxNomeExt[0].Split(new string[] { "__" }, StringSplitOptions.None); if (auxNomePos.Length > 1) { nomeNovo = auxNomePos[0]; } nomeNovo += "__" + model.width + "x" + model.height + "__" + model.x + "x" + model.y + "." + auxNomeExt[1]; if (model.file != nomeNovo) { RenomearImagemPerfil(model.file, nomeNovo); model.file = nomeNovo; } } return(model.file); }
public RetornoModel <UploadFotoModel> Upload(HttpPostedFileBase arquivo) { string nomeArq = null; UploadFotoModel retorno = null; try { if ((arquivo != null) && (arquivo.ContentLength > 0)) { string content = arquivo.ContentType.Split('/')[0]; if (content == "image") { if (arquivo.ContentLength > ConfiguracaoAppUtil.GetAsInt(enumConfiguracaoLib.uploadImagemMaxSize)) { int maxKb = Convert.ToInt32(ConfiguracaoAppUtil.GetAsInt(enumConfiguracaoLib.uploadImagemMaxSize) / 1024); return(new RetornoModel <UploadFotoModel> { Mensagem = "O tamanho máximo para upload de imagem é de " + ((maxKb > 1024) ? Convert.ToInt32(maxKb / 1024) + "Mb" : maxKb + "Kb") + ".", Sucesso = false }); } //Salva o arquivo nomeArq = Guid.NewGuid().ToString() + Path.GetExtension(arquivo.FileName); string caminhoArquivo = ConfiguracaoAppUtil.GetPath(enumConfiguracaoLib.indicadoFotoDiretorio, nomeArq); arquivo.SaveAs(caminhoArquivo); if (!AntivirusUtil.Verificar(caminhoArquivo)) { return(new RetornoModel <UploadFotoModel> { Mensagem = "Este arquivo contém vírus, favor tentar outro arquivo.", Sucesso = false }); } Image img = Image.FromFile(caminhoArquivo); retorno = new UploadFotoModel { file = nomeArq, width = img.Width, height = img.Height, x = Convert.ToInt32((indicadoMaxWidth - img.Width) / 2), y = Convert.ToInt32((indicadoMaxHeight - img.Height) / 2) }; } else { return(new RetornoModel <UploadFotoModel> { Mensagem = "Tipo de arquivo inválido.", Sucesso = false }); } } else { return(new RetornoModel <UploadFotoModel> { Mensagem = "Nenhum arquivo enviado.", Sucesso = false }); } } catch (Exception e) { LogUtil.Error(e); return(new RetornoModel <UploadFotoModel> { Mensagem = "Falha no upload, tente novamente!", Sucesso = false }); } return(new RetornoModel <UploadFotoModel> { Retorno = retorno, Mensagem = "Upload realizado com sucesso.", Sucesso = true }); }
public static UploadFotoModel CarregarFotoInfo(string arquivoNome, int widthCustom = 0, int heightCustom = 0) { if (string.IsNullOrEmpty(arquivoNome)) { return(null); } UploadFotoModel model = new UploadFotoModel(); model.file = arquivoNome; var auxNomeExt = arquivoNome.Split('.'); if (auxNomeExt.Length > 1) { string nomeNovo = auxNomeExt[0]; var auxNomePos = auxNomeExt[0].Split(new string[] { "__" }, StringSplitOptions.None); if (auxNomePos.Length > 2) { var auxTam = auxNomePos[1].Split('x'); var auxPos = auxNomePos[2].Split('x'); model.width = Convert.ToInt32(auxTam[0]); model.height = Convert.ToInt32(auxTam[1]); model.x = Convert.ToInt32(auxPos[0]); model.y = Convert.ToInt32(auxPos[1]); double percentual = 1.00; if (model.height > indicadoMaxHeightImage) { percentual = Convert.ToDouble(indicadoMaxHeightImage) / Convert.ToDouble(model.height); model.height = indicadoMaxHeightImage; model.width = Convert.ToInt32(model.width * percentual); } else if (model.width > indicadoMaxWidthImage) { percentual = Convert.ToDouble(indicadoMaxWidthImage) / Convert.ToDouble(model.width); model.width = indicadoMaxWidthImage; model.height = Convert.ToInt32(model.height * percentual); } } else { var arquivo = ConfiguracaoAppUtil.GetPath(enumConfiguracaoLib.indicadoFotoDiretorio, model.file); if (File.Exists(arquivo)) { var aux = Image.FromFile(arquivo); model.width = aux.Width; model.height = aux.Height; if (Convert.ToDouble(model.width) / Convert.ToDouble(model.height) < Convert.ToDouble(indicadoMaxWidth) / Convert.ToDouble(indicadoMaxHeight)) { model.height = Convert.ToInt32(Convert.ToDouble(indicadoMaxWidth) * Convert.ToDouble(model.height) / Convert.ToDouble(model.width)); model.width = indicadoMaxWidth; model.x = 0; model.y = Convert.ToInt32((indicadoMaxHeight - model.height) / 2); } else { model.width = Convert.ToInt32(Convert.ToDouble(indicadoMaxHeight) * Convert.ToDouble(model.width) / Convert.ToDouble(model.height)); model.height = indicadoMaxHeight; model.x = Convert.ToInt32((indicadoMaxWidth - model.width) / 2); model.y = 0; } } else { return(null); } } if ((widthCustom > 0) && (heightCustom > 0)) { double percentual = 1.00; if (Convert.ToDouble(widthCustom) / Convert.ToDouble(heightCustom) < Convert.ToDouble(indicadoMaxWidth) / Convert.ToDouble(indicadoMaxHeight)) { percentual = Convert.ToDouble(widthCustom) / Convert.ToDouble(indicadoMaxWidth); } else { percentual = Convert.ToDouble(heightCustom) / Convert.ToDouble(indicadoMaxHeight); } model.width = Convert.ToInt32(model.width * percentual); model.height = Convert.ToInt32(model.height * percentual); model.y = Convert.ToInt32(model.y * percentual); model.x = Convert.ToInt32(model.x * percentual); } } return(model); }