Visualizzazioni immagini in HTML e ASP.NET

di il
7 risposte

Visualizzazioni immagini in HTML e ASP.NET

Salve sto utilizzando il seguente codice asp html per il posizionamento di immagini su pagine web:

<asp:Image id="immagine" runat="server"  ImageUrl="Immagini/img.jpg"/>

le immagini sono contenute nella cartella del progetto web, nella sottocartella "immagini", e vengono visualizzate correttamente.

Avrei necessità di mantenere le immagini in una cartella esterna al sito web  (per esempio nella cartella del disco D indirizzata con D:/foto/img.jpg

 per cui modifico il tag asp come segue:

<asp:Image id="immagine" runat="server"  ImageUrl="d:/foto/img.jpg"/>

ma le immagini non vengono piu' visualizzate, come se non esistessero nel nuovo path.

Il risultato è lo stesso, sia lato server che lato client.

Come posso ovviare? Possibile che le immagini debbano essere sempre presenti in una sottocartella dove è contenuto lo stesso codice HTML o ASP.NET?

7 Risposte

  • Re: Visualizzazioni immagini in HTML e ASP.NET

    25/11/2025 - gigidisa ha scritto:

    Avrei necessità di mantenere le immagini in una cartella esterna al sito web  (per esempio nella cartella del disco D indirizzata con D:/foto/img.jpg

    Quindi se faccio la paginetta HTML e gli do la directory d io vedo le tue immagini? O il tuo disco?

    Forse mi sfugge qualcosa.

  • Re: Visualizzazioni immagini in HTML e ASP.NET

    Forse non mi sono spiegato bene, ci provo,

    il sito web è pubblicato (e funzionante) tramite IIS nella cartella Inetpub di un server.

    Adesso ho necessità di spostare tutte le immagini e i loghi che compaiono nelle pagine web al di fuori della cartellla Inetpub adesso contenuta sul disco C dove è pubblicato il sito web, ed in particolare voglio spostarle su un disco aggiuntivo partizionato come D.

    Ho modificato il codice HTML cercando di aggangiare immagini e loghi ricopiati sul disco D ma non vengono visualizzati.

    In pratica sembra che la sottocartella delle immagini deve essere presente nella stessa cartella del sito web.

    Infatti se sposto l'intera cartella contenente il sito web sul disco D e testo l'applicazione nell'ambiente di sviluppo web, le foto vengono acquisite regolarmente.

  • Re: Visualizzazioni immagini in HTML e ASP.NET

    25/11/2025 - gigidisa ha scritto:

    Ho modificato il codice HTML cercando di aggangiare immagini e loghi ricopiati sul disco D ma non vengono visualizzati.

    Come ti è stato risposto già sopra, e come ti ho detto pure io su questo forum dove hai postato la stessa domanda, se una pagina HTML potesse liberamente caricare immagini o altri file da qualunque percorso al suo interno, sarebbe possibile scaricarsi l'intero disco fisso e non ci sarebbe alcun limite, di fatto aprendo un problema di sicurezza enorme.

    Non puoi mettere percorsi fisici di file che non siano all'interno delle cartelle che sono state destinate al tuo web server e quindi "protette" nel modo opportuno.

    Quello che puoi fare, visto che usi .NET, è creare una pagina che girando lato server vada a caricare quelle immagini dal percorso che vuoi, e le restituisca al client.

    Di fatto quindi, puoi creare una pagina .aspx che faccia da ponte e di cui metterai l'indirizzo all'interno del tag dell'immagine, la quale - passando un parametro in querystring o in altro modo - capirà qual è l'immagine che vuoi andare a caricare.

    Anche in questo caso, comunque, il parametro non potrà essere il percorso completo dell'immagine, altrimenti torniamo al punto di prima: anche se c'è una pagina che fa da intermediazione, potenzialmente tramite quella posso scaricare qualunque file io voglia dal server, in assenza di controllo.

    Il suggerimento è quello di utilizzare i percorsi predisposti dal server: è la soluzione più sicura.

  • Re: Visualizzazioni immagini in HTML e ASP.NET

    25/11/2025 - gigidisa ha scritto:

    Infatti se sposto l'intera cartella contenente il sito web sul disco D e testo l'applicazione nell'ambiente di sviluppo web, le foto vengono acquisite regolarmente.

    pare che

    IIS permette l’accesso solo a risorse contenute nella cartella dell’applicazione (o virtual directory definite lì dentro).

    devi creare una virtual directory

    cerca nella guida.

    Per creare una directory virtuale in IIS, apri Gestione IIS, espandi il nodo del tuo server e il sito web desiderato, fai clic con il pulsante destro del mouse sull'applicazione a cui vuoi aggiungere la directory e seleziona Aggiungi directory virtuale. Nella finestra di dialogo, inserisci un nome (Alias) e il percorso fisico (Physical Path) e poi fai clic su OK

    25/11/2025 - gigidisa ha scritto:

    contenuta sul disco C dove è pubblicato il sito web

    il sito è su un pc configurato come server?

    piuttosto che caricare le foto su d, già che sei fisicamente sul server, non puoi fare drag drop e metterle nella cartella immagini del sito? mica devi usare ftp.

  • Re: Visualizzazioni immagini in HTML e ASP.NET

    Salve,

    avevo postato un esempio molto semplificato per dare un'idea del problema reale.

    Visto che ho creato dei fraintendimenti dettaglio l'applicazione, in effetti i path delle foto sono variabili per ogni selezione effettuata tramite chiavi di ricerca del portale e vengono letti di volta in volta da un database MS SQL con specifiche query e iniettati tramite codice vb.net su pagine ASP.

    Il problema è che se le foto sono presenti in una sottocartella del sito web vengono trovate e  visualizzate, se invece sono presenti su una cartella esterna alla cartella del sito web allora non vengono trovate., nonostante le path siano corrette nel database.

  • Re: Visualizzazioni immagini in HTML e ASP.NET

    26/11/2025 - gigidisa ha scritto:

    Visto che ho creato dei fraintendimenti dettaglio l'applicazione,

    Dici che

    26/11/2025 - gigidisa ha scritto:

    Il problema è che se le foto sono presenti in una sottocartella del sito web vengono trovate e  visualizzate, se invece sono presenti su una cartella esterna alla cartella del sito web allora non vengono trovate., nonostante le path siano corrette nel database.

    Ti ho risposto che

    26/11/2025 - sihsandrea ha scritto:

    pare che

    IIS permette l’accesso solo a risorse contenute nella cartella dell’applicazione (o virtual directory definite lì dentro).

    devi creare una virtual directory

    cerca nella guida.

    La Path la puoi passare con un db, con un SMS o con un piccione viaggiatore ma se è esterna non va. 

  • Re: Visualizzazioni immagini in HTML e ASP.NET

    26/11/2025 - gigidisa ha scritto:

    Il problema è che se le foto sono presenti in una sottocartella del sito web vengono trovate e  visualizzate, se invece sono presenti su una cartella esterna alla cartella del sito web allora non vengono trovate., nonostante le path siano corrette nel database.

    La precisazione direi che non sposta la problematica: il server non restituisce direttamente file né genera pagine lato server che si trovano al di fuori di un percorso prestabilito, per i motivi di sicurezza che abbiamo sinteticamente esposto, quindi non puoi chiedere al server di restituire direttamente file in ogni percorso del tuo disco, e questo è un bene!

    Se vuoi superare l'ostacolo, crei una pagina che accede - leggendo il percorso da database MySQL - al file dell'immagine da restituire, che può trovarsi in qualunque tipo di percorso, e la restituisce come risposta al browser (ci sono una marea di esempi online, basta cercare).

    In questo modo, la risorsa in questione - ossia la pagina - si trova in un luogo "accessibile e sicuro" per il web server, ed eseguendo codice, quel codice può leggere file da qualunque locazione, anche una locazione di rete o direttamente da un campo binario del DB, ovunque.

    Ovvio che in qualche modo dovrai parametrizzare quella pagina per sapere qual è il file che deve andare a caricare, ma anche qui non vedo quale sia la difficoltà: crea una pagina che, dato l'ID del record interessato, vada a fare la query su MySQL, recuperi il percorso dell'immagine interessata, apra quel file in particolare e lo restituisca come risposta al browser.

Devi accedere o registrarti per scrivere nel forum
7 risposte