FileUpload nao liberta ficheiro asp.net

ceptrus

Power Member
tenho um file upload a guardar imagens numa pasta da seguinte forma

Código:
[SIZE=2]sacosUpload.SaveAs(Request.PhysicalApplicationPath + [/SIZE][SIZE=2][COLOR=#800000]"images/"[/COLOR][/SIZE][SIZE=2] + name + [/SIZE][SIZE=2][COLOR=#800000]".jpg"[/COLOR][/SIZE][SIZE=2]);[/SIZE]
[SIZE=2][SIZE=2]sacosUpload.Dispose();[/SIZE][/SIZE]

mas se a seguir numa outra funçao tento apagar uma dessas imagens:

Código:
[SIZE=2][COLOR=#008080]File[/COLOR].Delete(Request.PhysicalApplicationPath + [/SIZE][SIZE=2][COLOR=#800000]"images/"[/COLOR][/SIZE][SIZE=2] + name+ [/SIZE][SIZE=2][COLOR=#800000]".jpg"[/COLOR][/SIZE][SIZE=2]);[/SIZE]

mas dá-me erro e diz k a imagem está a ser usada por outro processo. e a verdade é k nem a posso apagar manualmente pois dá o mesmo erro :(
 
e como faço para fechar o acesso ao ficheiro depois de o mandar pro servidor ??


estou a usar ASP.NET, nao tem nada a ver com reloads.
depois de fazer o upload posso fechar o browser k mesmo assim o ficheiro continua a ser usado por outro processo. sei isto pk tentando apagar o ficheiro na pasta para onde foi feito o upload nao dá
 
em asp.net tens um control asp:fileupload e é tao simples como :
txtImagePath.SaveAs(MapPath("~/Uploads/Stuff/" + txtImagePath.FileName.ToString()));
com um botao de save k xama o codigo a acima,

comigo funciona sem problemas :P
se usares ajax nao te eskecas de obrigares o postback

cumps
 
Galbne_PT se tivesses lido o k disse: "tenho um file upload"..

a pedido do SoundSurfer está aqui o codigo todo.

Código:
[COLOR=#0000ff]string[/COLOR][SIZE=2][SIZE=2][] aux = etiquetasUpload.FileName.Split([/SIZE][SIZE=2][COLOR=#800000]'.'[/COLOR][/SIZE][SIZE=2]);[/SIZE]
[/SIZE][SIZE=2][COLOR=#0000ff]string[/COLOR][/SIZE][SIZE=2] n = aux[aux.Length - 1].ToLower();[/SIZE]
 
[SIZE=2][COLOR=#0000ff]if[/COLOR][/SIZE][SIZE=2] (n != [/SIZE][SIZE=2][COLOR=#800000]"jpg"[/COLOR][/SIZE][SIZE=2] && n != [/SIZE][SIZE=2][COLOR=#800000]"jpeg"[/COLOR][/SIZE][SIZE=2] && n != [/SIZE][SIZE=2][COLOR=#800000]"bmp"[/COLOR][/SIZE][SIZE=2] && n != [/SIZE][SIZE=2][COLOR=#800000]"gif"[/COLOR][/SIZE][SIZE=2] && n != [/SIZE][SIZE=2][COLOR=#800000]"png"[/COLOR][/SIZE][SIZE=2])[/SIZE]
[SIZE=2]{ txtStatusEtiquetas.Text = [/SIZE][SIZE=2][COLOR=#800000]"Selecione um ficheiro de imagem."[COLOR=white];[/COLOR] [SIZE=2][COLOR=white]return; }[/COLOR][/SIZE][/COLOR][/SIZE]
 
[SIZE=2]bd.nonSQL([/SIZE][SIZE=2][COLOR=#800000]"INSERT INTO etiquetas(descricao) VALUES('"[/COLOR][/SIZE][SIZE=2] + txtDescricaoEtiquetas.Text + [/SIZE][SIZE=2][COLOR=#800000]"')"[/COLOR][/SIZE][SIZE=2]);[/SIZE]
[SIZE=2][COLOR=#0000ff]string[/COLOR][/SIZE][SIZE=2] name = bd.SQLstring([/SIZE][SIZE=2][COLOR=#800000]"SELECT TOP 1 id_etiqueta FROM etiquetas ORDER BY id_etiqueta DESC"[/COLOR][/SIZE][SIZE=2]);[/SIZE]
 
[SIZE=2]etiquetasUpload.SaveAs(Request.PhysicalApplicationPath + [/SIZE][SIZE=2][COLOR=#800000]"images/etiquetas/"[/COLOR][/SIZE][SIZE=2] + name + [/SIZE][SIZE=2][COLOR=#800000]".jpg"[/COLOR][/SIZE][SIZE=2]);[/SIZE]
[SIZE=2]etiquetasUpload.Dispose();[/SIZE]
 
[SIZE=2][SIZE=2]escreverEtiquetas();[/SIZE]
[/SIZE]

é muito estranho isto estar a acontecer.
o primeiro site que fiz, no meu pc tudo trabalhava bem, quando o meti num servidor alugado comecou a dar o mesmo erro k este me está a dar.. sempre k tentava apagar uma imagem dava-me erro :S
esse site inda continua com o erro e nao o consegui resolver.
 
vê se a conta que corre o asp.net tem permissõs para apagar ficheiros da pasta onde estás a guardar as imagens...

Quando gravas ficheiros com o ASP.NET é essa conta que fica como "owner" do ficheiro... pode ser problemas de permissões.
 
já vi isso, está tudo bem. o estranho é k mesmo indo pelo explorador do windows nao consigo apagar. sempre k insiro uma imagem ela fica a ser usada por um serviço qualquer e só é libertada quando reiniciar o servidor IIS ou o PC
 
Galbne_PT se tivesses lido o k disse: "tenho um file upload"..

Como deves calcular eu li o teu topico, mas simplesmente optei por "tentar" explicar tudo de inicio, ok, nao gostas-te! n posso fazer nd!

Agr relativo ao teu problema, como mencionei eu tenho apenas akela linha de codigo e apos o postback da pagina fico logo com o ficheiro livre.
Faz uma pagina k so faça o upload do ficheiro e vê se ele ja te deixa apagar.
 
Galbne_PT, desculpa lá o que disse.. só tentaste ajudar. eu k devia tar num dia menos bom e respondi-te assim..
brigado pela tua nova dica e por nao teres deixado de ajudar mesmo depois da maneira k te falei.

vou mesmo fazer o k disseste para experimentar. brigado
 
epá.. já criei um novo projecto e fiz a mesma cena que tenho no site que estou a fazer e o problema das imagens que nao podem ser apagadas continua :(
 
Back
Topo