Visualizzazione dei risultati da 1 a 9 su 9
  1. #1
    Utente di HTML.it
    Registrato dal
    Dec 2003
    Messaggi
    5

    Upload da ASP a ASP.NET

    Ciao, sto cercando di migliorare il caricamento di immagini sul mio sito in ASP: vorrei abbandonare il ridimensionamento in locale e farlo in automatico quando si carica un'immagine.
    Ho letto diversi post del forum e sono consapevole che la via più semplice è ASP.NET, ma il mio problema è che attualmente il caricamento dell'immagine include il rename del file con un id preso volta per volta da un db access, e passato tramite querystring.

    Io che di asp.net so proprio poco sono proprio in difficoltà...
    Qualcuno potrebbe aiutarmi?

    Grazie a tutti

    Questo uno stralcio del codice in ASP
    Codice PHP:
    <%@LANGUAGE="VBSCRIPT" CODEPAGE="1252"%>

    <% 
    Response.Expires = -100 %>
    <%
    Dim Recordset1__MMColParam
    'Recordset1__MMColParam = "1"
    '
    If (Request.QueryString("Codice") <> ""Then 
      Recordset1__MMColParam 
    Request.QueryString("ID")
    'End If
    %>
    <%
    Dim Recordset1
    Dim Recordset1_numRows

    Set Recordset1 = Server.CreateObject("ADODB.Recordset")
    Recordset1.ActiveConnection = MM_DBconn_STRING
    Recordset1.Source = "SELECT * FROM Eventi WHERE IDEvento= " &Recordset1__MMColParam
    Recordset1.CursorType = 0
    Recordset1.CursorLocation = 2
    Recordset1.LockType = 1
    Recordset1.Open()

    Recordset1_numRows = 0
    %>
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    </head>
    <body>
    <div id="home">


    [url="../backoffice/vedi_evento.asp?ID=<%=(Recordset1.Fields.Item("]">indietro[/url]</p>

    <h2 class="verde">Allega foto evento</h2>
    <h2>
    [url="/public/carica.asp?foto=upload/Anteprime/<%=(Recordset1.Fields.Item("].jpg">Anteprima (60 x 60)[/url]
    [img]/public/upload/anteprime/<%=(Recordset1.Fields.Item([/img].jpg">
    </p>



    [url="/public/carica.asp?foto=upload/Schede/<%=(Recordset1.Fields.Item("]_1.jpg">Foto scheda 1 (280 x 210)[/url]
    [img]/public/upload/schede/<%=(Recordset1.Fields.Item([/img]_1.jpg"></p>



    [url="/public/carica.asp?foto=upload/Schede/<%=(Recordset1.Fields.Item("]_2.jpg">Foto scheda 2 (280 x 210)[/url]
    [img]/public/upload/schede/<%=(Recordset1.Fields.Item([/img]_2.jpg">
    </p>





    [url="../backoffice/vedi_evento.asp?ID=<%=(Recordset1.Fields.Item("]">indietro[/url]</p>
    </div>
    </body>
    </html>
    <%
    Recordset1.Close()
    Set Recordset1 = Nothing
    %> 
    Dove la pagina carica.asp fa questo:
    Codice PHP:
    <%@LANGUAGE="VBSCRIPT" CODEPAGE="1252"%>
    <% 
    Response.Expires %>
    <% 

    Session("percorso") = Request.QueryString("foto")

     %>
    <!
    DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <
    html>
    <
    head>
    <
    meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    </
    head>
    <
    body>
    <
    div id="home">
    <
    FORM METHOD="Post" ENCTYPE="multipart/form-data" ACTION="outputFile.asp">


    Foto : <INPUT TYPE="file" NAME="blob"></p>


    <
    INPUT TYPE="submit" NAME="Enter" value="Allega"></p>
    <
    input type="hidden" name="codice" value="<%= session("cod") %>">
    <
    input type="hidden" name="path" value="<%= session("percorso") %>">
    </
    FORM>

    [
    img]../images/sotto.gif[/img]</div>
    </
    body>
    </
    html

  2. #2
    Utente di HTML.it L'avatar di rsdpzed
    Registrato dal
    Aug 2001
    Messaggi
    764
    quindi vorresti sostituire outputfile.asp con una pagina asp.net che faccia il lavoro?

    sinceramente non ho mai provato a far interagire i due contesti, ma non dovrebbe essere un problema. Il problema è se sei in hosting e te lo fanno fare.

    Crea un progetto aspnet vuoto con visual studio e aggiungi un file di handler generico (outputFile.ashx): da visual studio clicca con il destro sul progetto->aggiungi nuovo elemento->gestore generico

    ti troverai un file tipo questo

    codice:
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    
    namespace ImageUploader
    {
    
        public class Outputfile : IHttpHandler
        {
    
            public void ProcessRequest(HttpContext context)
            {
                context.Response.ContentType = "text/plain";
                context.Response.Write("Ciao da asp.net");
            }
    
            public bool IsReusable
            {
                get
                {
                    return false;
                }
            }
        }
    }
    prova in locale facendo run e vedi se navigando sulla pagina OutputFile.ashx ricevi il messaggio.
    se tutto è andato bene il passo successivo è farlo funzionare in iis in locale.

    Questa è una applicazione a se per cio necessita di essere caricata in una directory virtuale impostata come applicazione alla quale va impostato l'appPool sul framework .net v.4.

    Se tutto funziona allora si puo andare avanti

  3. #3
    Utente di HTML.it
    Registrato dal
    Dec 2003
    Messaggi
    5
    Ciao rsdpzed... grazie mille della risposta.

    In realtà adesso funziona così:

    pannello.asp (la prima parte di codice postata):
    contiente un elenco di link alla pagina carica.asp, ognuno dei quali si porta dietro il nome_file (preso da un db) da associare all'immagine differenziato da un suffisso (_1 _2 etc.).

    carica.asp (la seconda parte di cosice postata):
    permette di selezionare la foto (già ridimensionata in locale) e di caricarla sul server

    outputFile.asp:
    ha solo il controllo che il file è stato caricato correttamente:
    Codice PHP:
      
    <%Response.Expires=0
      Response
    .Buffer TRUE
      Response
    .Clear
      byteCount 
    Request.TotalBytes
      RequestBin 
    Request.BinaryRead(byteCount)
      
    Dim UploadRequest
      Set UploadRequest 
    CreateObject("Scripting.Dictionary")
      
    BuildUploadRequest  RequestBin
      contentType 
    UploadRequest.Item("blob").Item("ContentType")
      
    filepathname UploadRequest.Item("blob").Item("FileName")
      
    filename Right(filepathname,Len(filepathname)-InstrRev(filepathname,"\"))
      value = UploadRequest.Item("
    blob").Item("Value")

      'Create FileSytemObject Component
      Set ScriptObject = Server.CreateObject("
    Scripting.FileSystemObject")

      'Create and Write to a File
      pathEnd = Len(Server.mappath(Request.ServerVariables("
    PATH_INFO")))-14
      Set MyFile = ScriptObject.CreateTextFile(Left(Server.mappath(Request.ServerVariables("
    PATH_INFO")),pathEnd) & session("percorso") )'filename)
     
      For i = 1 to LenB(value)
         MyFile.Write chr(AscB(MidB(value,i,1)))
      Next
      MyFile.Close%>
      
    <html>
    <head>
    <meta http-equiv="
    Refresh" content="0;URL=../backoffice/vedi_evento.asp?ID=<%= Session("cod") %>">
    </head>

    <body>
    <div id="
    home">
    <h2 style="
    text-align:center;">File ricevuto con successo</h2>
      [img]../images/sotto.gif[/img]</div>
    </body>
    </html> 

    Ho visto in giro per il forum degli script in ASP.NET per fare direttamente upload e resize (con creazione di una thumbnail) ma non riesco a capire come adattarlo alla mia situazione in cui alla foto caricata deve essere associato un nomefile in parte preso da un db access e in parte da un numero progressivo (quindi dinamico).
    Il nomefile così associato serve nel resto del sito, per poter richiamare sempre tutte le foto associate allo stesso evento (prefisso del nome identico) senza dover inserire nel db tutti i percorsi delle varie immagini caricate...

    Spero di essere stato chiaro....

    Grazie ancora

  4. #4
    Utente di HTML.it L'avatar di rsdpzed
    Registrato dal
    Aug 2001
    Messaggi
    764
    è chiaro, io voglio prima sincerarmi che possiamo usare asp.net da dentro la tua applicazione asp perche non vorrei darti una soluzione che poi non puoi usare.

    molto probabilmente si, e forse non serve nemmeneo impostare directory virtuali o altro in quanto è possibile che le due realtà convivano insieme.

    Se ti è possibile fai questa prova.
    -Da visual studio crea una nuova applicazione web asp.net vuota
    -Aggiungi nuovo elemento -> gestore generico
    -chiamalo OutputFile.ashx. è un file tipo hello world che si limita a ritornare una pagina con una stringa.
    -lancia l'applicazione e sperimenta il funzionamento, naviga alla pagina OutputFile.ashx e vedrai la frase hello world.
    -Compila
    -Vai nella cartella di questa applicazione web e copia i file:
    1-web.config
    2-OutputFile.ashx
    nella cartella principale della tua applicazione
    e 3- tutto il contenuto della cartella bin dentro la bin della tua applicazione.

    Ora lancia la tua applicazione e controlla se puoi richiamare OutputFile.ashx e ottenere la pagina hello world.

    se si riesce allora possiamo usare asp.net e possiamo aiutarti ad adattare script e quant'altro alla tua situazione.

  5. #5
    Utente di HTML.it
    Registrato dal
    Dec 2003
    Messaggi
    5
    Ecco... io Visual Studio non ce l'ho... generalmente utilizzo Dreamweaver o alcuni semplici editor html...
    Se non ci sono alternative, per fare il test scarico la versione trial di Visual Studio?

  6. #6
    Utente di HTML.it L'avatar di rsdpzed
    Registrato dal
    Aug 2001
    Messaggi
    764
    http://www.qfpost.com/file/d?g=GBjVZ4uDq

    scarica questo progetto, metti tutto nella cartella principale del tuo sito asp e poi prova a navigare alla pagina hello.ashx e vedi se funziona o di farlo funzionare. richiede che su iis ci sia asp.net 4.

  7. #7
    Utente di HTML.it
    Registrato dal
    Dec 2003
    Messaggi
    5
    Ciao,
    niente.. la versione è 3.5

    Stavo sbattendo la testa per adattare al mio caso lo script di upload di R.B.Riddick con il passaggio di dati da ASP a ASP.NET utilizzando
    Codice PHP:
    public string nomefoto HttpContext.Current.Request.QueryString["foto"]; 
    Potrei essere sulla strada giusta?
    Ho anche il dubbio se ho necessità di variabili di sessione oppure no...

    Grazie ciao

  8. #8
    Utente di HTML.it
    Registrato dal
    May 2012
    Messaggi
    4
    Grazie.

  9. #9
    Utente di HTML.it
    Registrato dal
    Dec 2003
    Messaggi
    5
    Originariamente inviato da mascit
    Ciao,
    niente.. la versione è 3.5

    Stavo sbattendo la testa per adattare al mio caso lo script di upload di R.B.Riddick con il passaggio di dati da ASP a ASP.NET utilizzando
    Codice PHP:
    public string nomefoto HttpContext.Current.Request.QueryString["foto"]; 
    Potrei essere sulla strada giusta?
    Ho anche il dubbio se ho necessità di variabili di sessione oppure no...

    Grazie ciao
    Ciao,
    nessuno può aiutarmi?

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.