1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.

FileUpload nao liberta ficheiro asp.net

Discussão em 'Web Development' iniciada por ceptrus, 21 de Setembro de 2007. (Respostas: 13; Visualizações: 1949)

  1. ceptrus

    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 :(
     
  2. ceptrus

    ceptrus Power Member

    nunca ninguem teve o mesmo problema que eu?
    pk é que depois de adicionar a imagem ela continua a ser usada por outro processo?
     
  3. Galbne_PT

    Galbne_PT Power Member

    Boas,

    Em que linguagem estas a usar?

    Mas quase de certeza o problema é nao fazer o reload da pagina apos o save.

    Cumps
     
  4. Santo38

    Santo38 Power Member

    Parece mais um problema de não fechar o acesso ao file depois de abrir...

    Saudações
     
  5. ceptrus

    ceptrus Power Member

    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á
     
  6. Galbne_PT

    Galbne_PT Power Member

    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
     
  7. SoundSurfer

    SoundSurfer Power Member

    O mais provável é o erro ser de outra coisa que não especificaste... mete aqui o código todo.
     
  8. ceptrus

    ceptrus Power Member

    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.
     
  9. SoundSurfer

    SoundSurfer Power Member

    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.
     
  10. ceptrus

    ceptrus Power Member

    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
     
  11. Galbne_PT

    Galbne_PT Power Member

    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.
     
  12. ceptrus

    ceptrus Power Member

    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
     
  13. ceptrus

    ceptrus Power Member

    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 :(
     
  14. Galbne_PT

    Galbne_PT Power Member

    Coloca esse projecto integral num zip e posta ai, p correr aki no meu servidor a ver se dá o mm! :P

    Cumps
     

Partilhar esta Página