Percorso assoluto file immagine

  • Creatore Discussione Creatore Discussione yosef70
  • Data di inizio Data di inizio

yosef70

Nuovo Utente
15 Feb 2021
14
0
1
Buonasera a tutti,
ho il seguente problema che non riesco a risolvere.
In pratica in una cartella su un server di rete ho tante immagini che devo far visualizzare alla selezione di un record su una tabella. Un volta recuperato il nome del file image1.jpg o image2.tiff,... non riesco con questo codice a a far visualizzare l'immagine
Questo il codice sul server (diverso da quello in cui è presente la cartella con i file delle immagini) in cui è presente l'applicativo:
<img src="file://nomeservercondiviso/cartella1/cartella2/cartella3/immagini/000000000002753305.JPG">

Dal pc in rete se lancio l'applicazione non visualizza nulla o meglio l'immagine seguente
1647372584042.png

Se nel browser inserisco il link "file://nomeservercondiviso/cartella1/cartella2/cartella3/immagini/000000000002753305.JPG" mi apre correttamente l'immagine

Ho provato anche aggiungendo altri due "//", ma niente:

<img src="file:////nomeservercondiviso/cartella1/cartella2/cartella3/immagini/000000000002753305.JPG">
Come mai?
Grazie
 
Buonasera a tutti,
ho il seguente problema che non riesco a risolvere.
In pratica in una cartella su un server di rete ho tante immagini che devo far visualizzare alla selezione di un record su una tabella. Un volta recuperato il nome del file image1.jpg o image2.tiff,... non riesco con questo codice a a far visualizzare l'immagine
Questo il codice sul server (diverso da quello in cui è presente la cartella con i file delle immagini) in cui è presente l'applicativo:


Dal pc in rete se lancio l'applicazione non visualizza nulla o meglio l'immagine seguente
Vedi l'allegato 8035
Se nel browser inserisco il link "file://nomeservercondiviso/cartella1/cartella2/cartella3/immagini/000000000002753305.JPG" mi apre correttamente l'immagine

Ho provato anche aggiungendo altri due "//", ma niente:


Come mai?
Grazie
Scusate, dimenticavo di aggiungere che il file in cui è contenuto il codice è php,
 
Ciao, non ho ben chiaro il contesto o forse non ho ben capito cosa intendi fare, ma se devi accedere a risorse che risiedono in un server online, penso che il protocollo "file://" non vada per niente bene. Questo infatti si usa per accedere a risorse locali. Per cui, con quel protocollo, puoi accedere solo tu, nel tuo browser, alle immagini che si trovano nel tuo sistema.

Per accedere a risorse disponibili su un server online, in genere si usa il protocollo http o https o altri adatti alla condivisione di risorse online.

Quindi il percorso dell'immagine potrebbe essere una cosa di questo tipo:
"https://nomeservercondiviso/cartella1/cartella2/cartella3/immagini/000000000002753305.JPG"
sempre che quel file risieda su un server online e si abbiano i permessi per accederci.
 
Buongiorno,
no le risorse non sono online ma su un server della rete interna.
In pratica abbiamo un file server in cui vengono immagazzinati file di varia natura, PC locali collegati alla stessa rete e l'applicativo su di un terminal server collegato sempre alla rete interna.
In pratica la cosa strana è questa se il tag img lo scrivo singolarmente in un file html visualizza l'immagine invece se lo inserisco nella pagina php niente esce l'iconcina dell'immagine che ho postato sopra.
Spero di essere riuscito a farmi capire.
Grazie
 
Non avevo capito si trattasse di un server locale, ora mi è più chiaro anche se a tal proposito le mie conoscenze sono abbastanza limitate. Non saprei dirti con precisione dove possa essere il problema ma posso giusto fare qualche considerazione.

- Potrebbe dipende da restrizioni di sicurezza. Attraverso il browser puoi accedere direttamente ai file del server condiviso con protocollo FILE ma quando si fruisce la risorsa locale in una pagina web, il browser potrebbe bloccarne l'accesso per motivi di sicurezza relativi a richieste cross-origin.
Attraverso la console del browser (F12 per aprirla) verifica, quando apri la pagina, se ricevi errori o avvisi a riguardo.

- Potrebbe dipendere dai permessi impostati per i file e le cartelle a cui stai provando ad accedere. Personalmente non saprei dirti di più, fai magari qualche verifica e qualche ricerca per capire se e come impostare i permessi su risorse che devono essere fruibili attraverso server locale. Eventualmente abilita, se non lo è già, la segnalazione degli errori nel tuo php, e verifica se ricevi qualche tipo di errore a riguardo.

- Se si tratta di server Linux/Unix, essendo case-sensitive, assicurati che i percorsi delle risorse, a cui tenti di accedere, siano scritti con le corrette maiuscole e minuscole.

- Potrebbe essere un problema di sintassi dei percorsi. Verifica se può funzionare usando un percorso senza protocollo FILE e/o usando i backslash al posto degli slash:
anziché <img src="file://nomeservercondiviso/cartella1/cartella2/cartella3/immagini/000000000002753305.JPG">
prova con <img src="nomeservercondiviso\cartella1\cartella2\cartella3\immagini\000000000002753305.JPG">

- Potrebbe essere un problema di cross-domain, dal momento che stai tentando di accedere a risorse residenti su altro server, se non ho capito male. Potresti provare a convertire l'immagine come datauri vedi qui: https://davidwalsh.name/data-uri-php o fai qualche ricerca a riguardo

Le mie sono solo ipotesi da prendere con le pinze e valutare adeguatamente. Fai giusto delle verifiche, eventualmente qualcuno più esperto potrebbe darti dei consigli più mirati :)
 
Ultima modifica:
Non avevo capito si trattasse di un server locale, ora mi è più chiaro anche se a tal proposito le mie conoscenze sono abbastanza limitate. Non saprei dirti con precisione dove possa essere il problema ma posso giusto fare qualche considerazione.

- Potrebbe dipende da restrizioni di sicurezza. Attraverso il browser puoi accedere direttamente ai file del server condiviso con protocollo FILE ma quando si fruisce la risorsa locale in una pagina web, il browser potrebbe bloccarne l'accesso per motivi di sicurezza relativi a richieste cross-origin.
Attraverso la console del browser (F12 per aprirla) verifica, quando apri la pagina, se ricevi errori o avvisi a riguardo.

- Potrebbe dipendere dai permessi impostati per i file e le cartelle a cui stai provando ad accedere. Personalmente non saprei dirti di più, fai magari qualche verifica e qualche ricerca per capire se e come impostare i permessi su risorse che devono essere fruibili attraverso server locale. Eventualmente abilita, se non lo è già, la segnalazione degli errori nel tuo php, e verifica se ricevi qualche tipo di errore a riguardo.

- Se si tratta di server Linux/Unix, essendo case-sensitive, assicurati che i percorsi delle risorse, a cui tenti di accedere, siano scritti con le corrette maiuscole e minuscole.

- Potrebbe essere un problema di sintassi dei percorsi. Verifica se può funzionare usando un percorso senza protocollo FILE e/o usando i backslash al posto degli slash:
anziché <img src="file://nomeservercondiviso/cartella1/cartella2/cartella3/immagini/000000000002753305.JPG">
prova con <img src="nomeservercondiviso\cartella1\cartella2\cartella3\immagini\000000000002753305.JPG">

- Potrebbe essere un problema di cross-domain, dal momento che stai tentando di accedere a risorse residenti su altro server, se non ho capito male. Potresti provare a convertire l'immagine come datauri vedi qui: https://davidwalsh.name/data-uri-php o fai qualche ricerca a riguardo

Le mie sono solo ipotesi da prendere con le pinze e valutare adeguatamente. Fai giusto delle verifiche, eventualmente qualcuno più esperto potrebbe darti dei consigli più mirati :)
Qualcosa del genere ho immaginato, ma non comprendo il perché da file html funzione e da php no. Cmq faccio un pò di verifiche con le dritte che mi hai dato. Ti faccio sapere se riesco, in attesa di altre utili dritte.
Grazie
 
ma non comprendo il perché da file html funzione e da php no.
il file html e quello php risiedono sempre sullo stesso server?

Tieni conto che il php genera comunque un documento html per essere fruito sul browser. In questo caso, se l'indirizzo url dell'immagine è identico per entrambi i casi, teoricamente dovrebbe funzionare allo stesso modo sia in un caso sia nell'altro. Eventualmente verifica che il valore nell'attributo src sia esattamente lo stesso, giusto per toglierci il dubbio.

Quindi prova in questo modo:

- apri la pagina html e visualizza il codice sorgente*, o ispeziona l'elemento** img attraverso gli strumenti web e vedi che valore è presente nell'attributo src di quel tag img.

- fai lo stesso per la pagina php, quindi verifica se ci sono differenze tra i due url



* Per visualizzare il codice sorgente fai click dx in un punto qualsiasi della pagina in questione e seleziona "Visualizza sorgente pagina" dal menu contestuale (o "Visualizza origine della pagina" o qualcosa del genere a seconda del browser).

** Per analizzare l'elemento img, fai click dx sull'immagine (o sull'icona dell'immagine mancante) quindi seleziona "Analizza" (o "Ispeziona" o "Esamina" o qualcosa del genere a seconda del browser)


Fai sapere :)
 
Ultima modifica:
Ho fatto un pò di prove ma senza nessun risultato, anche sentito CED ma alla fine altra soluzione, copiare tutta la cartella sotto il sito (tanto cmq da una parte devo occupare spazio). Tutto ok in parte, ho riscontrato due problemi, uno, file tiff che i browser non visualizzano e vabbè converto tutto in altro formato e l'altra è nel nome del file. Nel senso che molti nomi di file hanno all'interno il carattere "_" e non viene visualizzata l'immagine da errore 404 (dalla console F12), se lo tolgo viene visualizzato, c'è una funzione particolare da anteporre? Chiaramente prova fatta con file jpg o png non tiff.
 
Ho fatto un pò di prove ma senza nessun risultato, anche sentito CED ma alla fine altra soluzione, copiare tutta la cartella sotto il sito (tanto cmq da una parte devo occupare spazio). Tutto ok in parte, ho riscontrato due problemi, uno, file tiff che i browser non visualizzano e vabbè converto tutto in altro formato e l'altra è nel nome del file. Nel senso che molti nomi di file hanno all'interno il carattere "_" e non viene visualizzata l'immagine da errore 404 (dalla console F12), se lo tolgo viene visualizzato, c'è una funzione particolare da anteporre? Chiaramente prova fatta con file jpg o png non tiff.
Risolto scusa, una dimenticanza charset utf-8
 

Discussioni simili