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

    Ridimensiona immagine, ma mi si blocca con caratteri speciali

    Ciao! dopo numerose ricerche ho trovato questo codice che mi fà il resize. Solo che se deve visualizzare un nome con i caratteri speciali ad es.

    files richiamato: "ShowImage.aspx?img=perchè.jpg" non visualizza nulla!

    essendo files in upload quindi nn vorrei dare limiti è possibile farsì che questo codice funzioni anche con files aventi caratteri speciali?

    ecco il code (mi stò avvicinando al ASP.NET) ma piano piano ci riesco!

    ShowImage.aspx
    codice:
    <%@Import Namespace="System.Drawing.Imaging" %>
    <script language="VB" runat="server">
      Function ThumbnailCallback() as Boolean
        Return False
      End Function
    
    
      Sub Page_Load(sender as Object, e as EventArgs)
      
        'Read in the image filename to create a thumbnail of
        Dim imageUrl as String = Request.QueryString("img")
        
        'Read in the width and height
        Dim imageHeight as Integer = Request.QueryString("h")
        Dim imageWidth as Integer = Request.QueryString("w")
    
        'Make sure that the image URL doesn't contain any /'s or \'s
        If imageUrl.IndexOf("/") >= 0 Or imageUrl.IndexOf("\") >= 0 then
          'We found a / or \
          Response.End()
        End If
        
        'Add on the appropriate directory
    	imageUrl = "/gallery/" & imageUrl
        'imageUrl = "images/" & imageUrl
        
        Dim fullSizeImg as System.Drawing.Image
        fullSizeImg = System.Drawing.Image.FromFile(Server.MapPath(imageUrl))
    
        'Do we need to create a thumbnail?
        Response.ContentType = "image/gif"
        If imageHeight > 0 and imageWidth > 0 then
          Dim dummyCallBack as System.Drawing.Image.GetThumbNailImageAbort
          dummyCallBack = New _
             System.Drawing.Image.GetThumbnailImageAbort(AddressOf ThumbnailCallback)
    
          Dim thumbNailImg as System.Drawing.Image
          thumbNailImg = fullSizeImg.GetThumbnailImage(imageWidth, imageHeight, _
                                                       dummyCallBack, IntPtr.Zero)
    
          thumbNailImg.Save(Response.OutputStream, ImageFormat.Gif)  
    
          'Clean up / Dispose...
          ThumbnailImg.Dispose()
        Else
          fullSizeImg.Save(Response.OutputStream, ImageFormat.Gif)  
        End If
        
        'Clean up / Dispose...
        fullSizeImg.Dispose()
      End Sub
    </script>
    My simple Script Asp: VotoMedio

  2. #2
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    per "colpa" della tua domandina ho dovuto correggere qualcosa anch'io

    Non credo che dipenda dal codice di ridimensionamento ma da come viene fatta la richiesta dal client. Quella di sotto è una pagina di esempio.
    L'immagine si chiama /tmp/àèéìòù+- .jpg (lettere accentate, carattere +, carattere spazio) che danno molto fastidio.

    codice:
    <%@ Page Language="VB" %>
    <%@ Import Namespace="l=libreria.ModuloWeb" %>
    
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    
    <script runat="server">
    
        Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs)
    
            Dim p_img As String = RequestParams("p_img")
            If p_img.Length > 0 Then
                libreria.ImgResizeAndSaveToResponseOutputStream(p_img, 300)
            Else
                Me.Literal1.Text = String.Format("[img][/img]", Server.UrlEncode("àèéìòù+- "))
            End If
            
        End Sub
    </script>
    
    <html xmlns="http://www.w3.org/1999/xhtml" >
    <head runat="server">
        <title>Pagina senza titolo</title>
    
    </head>
    <body>
        <form id="form1" runat="server">
            [img]?p_img=/tmp/àèéìòù+- .jpg[/img]
    
            [img]?p_img=/tmp/%C3%A0%C3%A8%C3%A9%C3%AC%C3%B2%C3%B9%2B-%20.jpg[/img]
    
            <script type="text/javascript">document.writeln('[img]?p_img=/tmp/' + encodeURIComponent('àèéìòù+- .jpg') + '[/img]');</script>
    
            <asp:Literal ID="Literal1" runat="server"></asp:Literal>
        </form>
    </body>
    </html>

    ti faccio solo notare encodeURIComponent usato nel client e UrlEncode usato nel server


    ps. dà errore solo la prima <img, le altre funzionano
    Pietro

  3. #3
    ho capito quello che vuoi dire il problema stà nel temporaneo, la tua pagina sul mio server non funziona, è aruba base. Ma visto che non è l'elaborazione ma è l'immagine temporanea che và in blocco, ma non si può aggiungere una funziona che quando crea la temporanea rinomini tipo con "replace" i caratteri speciali?
    Non posso usare librerie deve essere di tipo come quella che ho postato.

    dovrebbero essere queste funzioni ma in modo semplice nn ho capito come farlo funzionare

    encodeURIComponent usato nel client e UrlEncode

    Anche perchè l'elaborazione la faccio in *aspx mentre la pagina di richiamo la faccio in *asp

    Grazie
    My simple Script Asp: VotoMedio

  4. #4
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    :master: forse non mi sono spiegato bene

    se nella pagina ho un tag [img]?p_img=/tmp/àèéìòù+- .jpg[/img]<

    lo debbo sostituire con questo:

    <script type="text/javascript">document.writeln('[img]?p_img=/tmp/' + encodeURIComponent('àèéìòù+- .jpg') + '[/img]');</script>




    Se invece lo compongo nel server debbo usare questo:

    String.Format("[img][/img]", Server.UrlEncode("àèéìòù+- ")


    Di più non so
    Pietro

  5. #5
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    Da quello che ho visto, facendo prove nel mio computer, non sono tanto le lettere accentate che danno problemi, ma il carattere +. Questo carattere viene visto come spazio (asc 32) e per questo motivo il mio codice non funziona.

    Se però tralasciamo questo carattere "strano" il tuo codice dovrebbe funzionare. Prova a mettere, se non già fatto, nel web.config, la direttiva:

    <globalization requestEncoding="utf-8" responseEncoding="utf-8" culture="it-IT" uiCulture="it-IT"/>

    Pietro

  6. #6

    <script type="text/javascript">document.writeln('[img]?p_img=/tmp/' + encodeURIComponent('àèéìòù+- .jpg') + '[/img]');</script>
    Ho risolto con questo grazie!
    My simple Script Asp: VotoMedio

  7. #7
    Scusa Pietro, potresti anche dirmi se c'è un modo per migliorare la qualità dell'immagine temporanea?

    il codice che ho postato la fà troppo bassa di peso solo 5kb quindi perde moltissimo!

    il codice l'ho preso qui:

    http://aspnet.4guysfromrolla.com/art...12203-1.2.aspx

    seguendo l'es. se nn imposto i parametri la qualità aumenta ma si vede addirittura peggio!

    Grazie ancora!
    My simple Script Asp: VotoMedio

  8. #8
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    Pietro

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.