Visualizzazione dei risultati da 1 a 10 su 10
  1. #1

    Rinominare immagine presente sul server

    Allora,

    premettendo che di asp.net non so nulla, vi spiego la mia situazione.

    Ho uno script col quale faccio il ridimenzionamento di un'immagine. Il problema nasce quando la vado a salvare, perch'è essendo l'immagine con quel nome già presente su server, appena fa il salva da errore GDI

    come faccio quindi a SOVRASCRIVERE l'immagine che ho su server?

    Vi prego aiutatemi

    Saluti



    ps: l'immagine è stata precedentemente uplodata con ASP

  2. #2
    Utente di HTML.it
    Registrato dal
    Sep 2002
    Messaggi
    4,127
    "sovrascrivere" io lo dividerei in due parti.
    prima di salvare la nuova immagine utilizzi System.IO.Delete e cancelli la vecchia immagine. poi normalmente salvi l'immagine, e non ti dovrebbe dare piu errore.

  3. #3
    il fatto è che io avevo messo

    FIle.delete( )

    subito prima del salvataggio, eppure mi ha dato errore dicendomi che non potevo cancellare il file perchè era utilizzato da un altro procedimento


    volete un pò di codice?

  4. #4
    Utente di HTML.it
    Registrato dal
    Sep 2002
    Messaggi
    4,127
    Originariamente inviato da santino83
    volete un pò di codice?
    sì, lo voglio.
    lo sposo può baciare la sposa.. ah no, non è un matrimonio.. vabbè fa niente, niente bacio

  5. #5
    tieni sposo, ecco la sposa

    codice:
    <SCRIPT RUNAT="SERVER" language="vb" >
    Sub Page_Load()
    
    	Dim width as Integer = Request.QueryString("w")
    	Dim height as Integer = Request.QueryString("h")
        Dim nome as String=Request.QueryString("n")
    	dim propertiI as String=Request.QueryString("p")
    	dim idestate as String=Request.QueryString("i")
    
    	' ridimensiona l''immagine se specificat'
    	
    	Dim immagine as String = server.MapPath("/images/properties/" & nome)
    
    	call ImgRedim(immagine, width, height, nome, propertiI, idestate)
    
    	End Sub
    
    ' Funzione di redim'
    Public Sub ImgRedim(immagine as String, width as Integer, height as Integer, nome as String, propertiI as String, idestate as String)
    
    	Dim bmp as System.Drawing.Bitmap = CType(System.Drawing.Image.FromFile(immagine), System.Drawing.Bitmap)
    
    		' creo la Thumbnail con i parametri impostati'
    		Dim miniaturabmp as New System.Drawing.Bitmap(bmp, width, height)
    		dim immagine1 as String
    		
    
    --> QUA MI DA ERRORE 'File.delete(server.MapPath("/images/properties/" & nome))'
    
    
    --> ALLORA HO DOVUTO METTERCI UN ALTRO NOME dim nome1 as String = "main1.jpg"
    
    immagine1=server.MapPath("/images/properties/" & nome1) 
    
    		' salvo sullo stream di output'
    		if immagine1.EndsWith(".jpg") Then
    		
    miniaturabmp.Save(immagine1, ImageFormat.JPEG)
    
    			
    	        else
    miniaturabmp.Save(immagine1, System.Drawing.Imaging.ImageFormat.Jpeg)
    
    		end if
    
    		' pulizia'
    		miniaturabmp.Dispose()
    
    	' pulizia finale'
    	bmp.Dispose()
    
    
    End Sub
    
    </SCRIPT>
    scusate il pastrocchio ma ho dovuto modificare uno script già fatto, e da neofita di asp.net mi sono un pò arrangiato

  6. #6
    salvi l'immagine ridimensionata con un nome provvisorio, dopo i vari dispose cancelli l'immagine originale e rinomini l'altra
    "...non è detto che sia tardi se non guardi che ora è..."

  7. #7
    ho capito, ma qual'è ristruzione per rinominare l'immagine?

    file.rename?

    file.newname?

    io non l'ho mai fatta una cosa simile...

  8. #8
    no scusa, salva il file originale mettendo un prefisso, ad esempio
    temp-nomefile
    fai il resize e salva togliendo il prefisso, cancella il file originale
    "...non è detto che sia tardi se non guardi che ora è..."

  9. #9
    il problema è un altro.

    io faccio l'upload del file con ASP. In questo upload assegno un NOME all'immagine. Se le dimensioni di questa immagine sono troppo grosse (intendo widthXheight), allora apro un pop-up di una pagina .ASPX in cui c'è lo script asp.net che ho postato. Questo script deve fare:

    - prendere l'immagine uplodata

    - creare a partie da questa una nuova immagine con W ed E modificati

    - salvare questa nuova immagine con un nome diverso dall'orginale

    - eliminare l'immagine originale

    - rinominare l'immagine nuova ridimensionata


    qualcuno ha idea di cosa aggiungere al mio file per rinominare un'immagine già salvata sul server?

  10. #10
    ce l'ho fatta, usando il metodo copy dell'oggetto File

    codice:
    <%@ Import Namespace="System.Drawing"%>
    <%@ Import Namespace="System.IO"%>
    <%@ Import Namespace="System.Drawing.Imaging"%>
    <SCRIPT RUNAT="SERVER" language="vb" >
    Sub Page_Load()
    
    	Dim width as Integer = Request.QueryString("w")
    	Dim height as Integer = Request.QueryString("h")
        Dim nome as String=Request.QueryString("n")
    	dim propertiI as String=Request.QueryString("p")
    	dim idestate as String=Request.QueryString("i")
    
    	' ridimensiona l''immagine se specificat'
    	
    	Dim immagine as String = server.MapPath("/images/properties/" & nome)
    
    	call ImgRedim(immagine, width, height, nome, propertiI, idestate)
    
    	End Sub
    
    ' Funzione di redim'
    Public Sub ImgRedim(immagine as String, width as Integer, height as Integer, nome as String, propertiI as String, idestate as String)
    	Dim bmp as System.Drawing.Bitmap = CType(System.Drawing.Image.FromFile(immagine), System.Drawing.Bitmap)
    
    		' creo la Thumbnail con i parametri impostati'
    		Dim miniaturabmp as New System.Drawing.Bitmap(bmp, width, height)
    		dim immagine1 as String
    		dim newImmagine as String
    		dim temp as String
    
    
    		' salvo sullo stream di output'
    		if immagine.EndsWith(".jpg") or immagine.EndsWith(".jpeg") Then
    		
    temp="temp.jpg"
    immagine1=server.MapPath("/images/properties/" & temp) 
    miniaturabmp.Save(immagine1, ImageFormat.JPEG)
    miniaturabmp.Dispose()
    bmp.Dispose()
    File.Delete(immagine)
    newImmagine=server.MapPath("/images/properties/" & nome)
    File.Copy (immagine1, newImmagine,true)
    File.Delete(immagine1)
    			
    	        else
    			
    temp="temp.gif"
    immagine1=server.MapPath("/images/properties/" & temp) 
    miniaturabmp.Save(immagine1, ImageFormat.GIF)
    miniaturabmp.Dispose()
    bmp.Dispose()
    File.Delete(immagine)
    newImmagine=server.MapPath("/images/properties/" & nome)
    File.Copy (immagine1, newImmagine,true)
    File.Delete(immagine1)
    
    		end if
    
    
    End Sub
    
    </SCRIPT>

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.