Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

globim

sistema de upload

Recommended Posts

criei um sistema de upload que grava a figura no dire´torio que eu quisser e ja cria um thumbnail :) legau isso funcxa mais assim se eu tentar mandar a mesma foto duas veses da pau tem algum jeito de dar e ele sobre escrever a foto ou eu vou ter colocar um nome nela ou fazer algum if pra ver se ja existe aquele arquivo ?

 

segue o codigo

 

//criação de Variavel para receber o nome 	 string strnome = File1.PostedFile.FileName; 	 //manipulação para separar diretório do nome do arquivo 	 strnome = System.IO.Path.GetFileName(strnome); 	 int zNewCode = zInsert.Stat_NexKey(); 	 string xcoduso = ID; 	  	 if (! System.IO.Directory.Exists(@"C:\Inetpub\wwwroot\dsweb\logo_fornecedor\"+zNewCode)) 	 {    System.IO.Directory.CreateDirectory(@"C:\Inetpub\wwwroot\dsweb\logo_fornecedor\"+zNewCode); 	 } 	  	 //Grava o arquivo no diretório 	 string xpath  = @"C:\Inetpub\wwwroot\dsweb\logo_fornecedor\"+zNewCode+@"\"+strnome; 	 File1.PostedFile.SaveAs(xpath);//thumbnailSystem.Drawing.Image fullSizeImg = System.Drawing.Image.FromFile(@"C:\Inetpub\wwwroot\dsweb\logo_fornecedor\"+zNewCode+@"\"+strnome);    System.Drawing.Image.GetThumbnailImageAbort dummyCallBack = new System.Drawing.Image.GetThumbnailImageAbort(ThumbnailCallback);    System.Drawing.Image thumbNailImg = fullSizeImg.GetThumbnailImage(80,80,dummyCallBack, IntPtr.Zero);    thumbNailImg.Save(@"C:\Inetpub\wwwroot\dsweb\logo_fornecedor\"+zNewCode+@"\"+"thumb_"+strnome);

Compartilhar este post


Link para o post
Compartilhar em outros sites

você pode usar esse método System.IO.File.Exists(@"path\NomeDoArquivo"); e verificar se já existe o arquivo... caso exista você pode mandar gerar um nome aleatório e tentar salvar novamente!!!Att,Carlos

Compartilhar este post


Link para o post
Compartilhar em outros sites

fazendo isso você não corre o risco de sobrepor uma imagem q está sendo usada...mas ai vai da sua necessidade... Att,Carlos

Compartilhar este post


Link para o post
Compartilhar em outros sites

ow você pode verificar se existe o arquivo, se existir você deleta antes e depois salva a nova imagem!!!ok?Att,Carlos

Compartilhar este post


Link para o post
Compartilhar em outros sites

olha só quando eu tento salva o mesmo arquivo ele da esse erro aqui Server Error in '/dsweb' Application.--------------------------------------------------------------------------------The process cannot access the file "C:\Inetpub\wwwroot\dsweb\logo_fornecedor\3\00-40-20.gif" because it is being used by another process. Line 190: //Grava o arquivo no diretórioLine 191: string xpath = @"C:\Inetpub\wwwroot\dsweb\logo_fornecedor\"+zNewCode+@"\"+strnome;[RED]Line 192: File1.PostedFile.SaveAs(xpath);[/RED]Line 193: Line 194: System.Drawing.Image fullSizeImg = System.Drawing.Image.FromFile(@"C:\Inetpub\wwwroot\dsweb\logo_fornecedor\"+zNewCode+@"\"+strnome);andei fazendo este codigo aqui fico bom :) //Grava o arquivo no diretório caso nao existir if(! System.IO.File.Exists(@"C:\Inetpub\wwwroot\dsweb\logo_fornecedor\"+zNewCode+@"\"+strnome)) { string xpath = @"C:\Inetpub\wwwroot\dsweb\logo_fornecedor\"+zNewCode+@"\"+strnome; File1.PostedFile.SaveAs(xpath); } if (System.IO.File.Exists(@"C:\Inetpub\wwwroot\dsweb\logo_fornecedor\"+zNewCode+@"\"+strnome)) { //deleta o arquivo caso ja existir string xpath = @"C:\Inetpub\wwwroot\dsweb\logo_fornecedor\"+zNewCode+@"\"+strnome; System.IO.File.Delete (@"C:\Inetpub\wwwroot\dsweb\logo_fornecedor\"+zNewCode+@"\"+strnome); //após deletar o arquivo ele salva novamente File1.PostedFile.SaveAs(xpath); }

Compartilhar este post


Link para o post
Compartilhar em outros sites

tente remover antes de salvar... nessa condição q você colcou está fora da lógica, tente assim//arquivostring xpath = @"C:\Inetpub\wwwroot\dsweb\logo_fornecedor\"+zNewCode+@"\"+strnome;//Grava o arquivo no diretório caso nao existirif(! System.IO.File.Exists(@"C:\Inetpub\wwwroot\dsweb\logo_fornecedor\"+zNewCode+@"\"+strnome)){File1.PostedFile.SaveAs(xpath);}else{//deleta o arquivo caso ja existirSystem.IO.File.Delete (@"C:\Inetpub\wwwroot\dsweb\logo_fornecedor\"+zNewCode+@"\"+strnome);//após deletar o arquivo ele salva novamenteFile1.PostedFile.SaveAs(xpath);}

Compartilhar este post


Link para o post
Compartilhar em outros sites

hehe ta neh :P mais ta funcando ^^ mais eu sei que do seu jeito ta certo pq ele só tem duas alternativas ou eh isso ou é aquilo valeu mano

Compartilhar este post


Link para o post
Compartilhar em outros sites

;) é pelo meu entendimento ele vai fazer assimse não existir o arquivo salva o arquivofim sese existir o arquivo deleta o arquivo salva o arquivofim seou seja... se não existir ele salva, ai logo abaixo ele verifica q existe, deleta o arquivo e salva novamente... você tem 2 condições e ele vai verificar as duas sempre... e não somente uma ou a outra...ok???precisando de alguma coisa é só falar!!!Att,Carlos

Compartilhar este post


Link para o post
Compartilhar em outros sites

//arquivostring xpath = @"C:\Inetpub\wwwroot\dsweb\logo_fornecedor\"+zNewCode+@"\"+strnome;//deleta o arquivo caso ja existirif(System.IO.File.Exists(@"C:\Inetpub\wwwroot\dsweb\logo_fornecedor\"+zNewCode+@"\"+strnome)){System.IO.File.Delete (@"C:\Inetpub\wwwroot\dsweb\logo_fornecedor\"+zNewCode+@"\"+strnome);}//Salva o arquivoFile1.PostedFile.SaveAs(xpath);Tenta fazer assim acho q vai ficar melhor, pq de toda a forma ele vai gravar o arquivo, então se ele existir deleta e depois grava senão somente grava.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.