Recuperare percorso del file dal client

di il
5 risposte

Recuperare percorso del file dal client

Ciao a tutti, ho dovuto convertire un'applicazione in vb.net in asp.net per essere utilizzata tramite interfaccia web. L'applicazione gira solo su rete locale, c'è un web server in rete con IIS. L'applicazione deve poter caricare sul server dei file. Ho utilizzato varie funzioni per l'upload dei file e tutto funziona correttamente. Adesso però ho scoperto che c'è un punto dell'applicativo dove devono caricare sul server file enormi oltre 1GB di dimensioni e con i vari sistemi di upload che utilizzo io è lentissimo. Qualcuno conosce dei metodi alternativi per effettuare la copia dei file dal client. Mi basterebbe anche ottenere il percorso del file selezionato dal client perché posso vincolare che i file vengano presi da una condivisione di rete e quindi se riuscissi ad avere il percorso di dove è stato preso il file potrei poi utilizzare una filecopy direttamente dal web server. 

Grazie a tutti per l'attenzione.

5 Risposte

  • Re: Recuperare percorso del file dal client

    06/06/2024 - robinhood ha scritto:


    Ciao a tutti, ho dovuto convertire un'applicazione in vb.net in asp.net per essere utilizzata tramite interfaccia web. L'applicazione gira solo su rete locale, c'è un web server in rete con IIS. L'applicazione deve poter caricare sul server dei file. Ho utilizzato varie funzioni per l'upload dei file e tutto funziona correttamente. Adesso però ho scoperto che c'è un punto dell'applicativo dove devono caricare sul server file enormi oltre 1GB di dimensioni e con i vari sistemi di upload che utilizzo io è lentissimo. Qualcuno conosce dei metodi alternativi per effettuare la copia dei file dal client. Mi basterebbe anche ottenere il percorso del file selezionato dal client perché posso vincolare che i file vengano presi da una condivisione di rete e quindi se riuscissi ad avere il percorso di dove è stato preso il file potrei poi utilizzare una filecopy direttamente dal web server. 

    Per ovvi motivi di privacy e di sicurezza, il browser non invia alcuna informazione sul percorso effettivo del file, anche perché non avrebbe alcuna utilità considerando che il server non potrebbe accedere al client.

    Nel tuo caso, converrebbe disporre di un programma client esterno alla pagina Web, magari invocabile dalla pagina stessa tramite un protocollo registrato nel sistema (es. in Windows è possibile farlo tramite Registro); comunque si decida di farlo, se vuoi informazioni sul percorso ed eseguire operazioni all'esterno della pagina Web, devi operare al di fuori della pagina Web, in ogni caso. :|

  • Re: Recuperare percorso del file dal client

    06/06/2024 - Alka ha scritto:


    06/06/2024 - robinhood ha scritto:


    Ciao a tutti, ho dovuto convertire un'applicazione in vb.net in asp.net per essere utilizzata tramite interfaccia web. L'applicazione gira solo su rete locale, c'è un web server in rete con IIS. L'applicazione deve poter caricare sul server dei file. Ho utilizzato varie funzioni per l'upload dei file e tutto funziona correttamente. Adesso però ho scoperto che c'è un punto dell'applicativo dove devono caricare sul server file enormi oltre 1GB di dimensioni e con i vari sistemi di upload che utilizzo io è lentissimo. Qualcuno conosce dei metodi alternativi per effettuare la copia dei file dal client. Mi basterebbe anche ottenere il percorso del file selezionato dal client perché posso vincolare che i file vengano presi da una condivisione di rete e quindi se riuscissi ad avere il percorso di dove è stato preso il file potrei poi utilizzare una filecopy direttamente dal web server. 

    Per ovvi motivi di privacy e di sicurezza, il browser non invia alcuna informazione sul percorso effettivo del file, anche perché non avrebbe alcuna utilità considerando che il server non potrebbe accedere al client.

    Nel tuo caso, converrebbe disporre di un programma client esterno alla pagina Web, magari invocabile dalla pagina stessa tramite un protocollo registrato nel sistema (es. in Windows è possibile farlo tramite Registro); comunque si decida di farlo, se vuoi informazioni sul percorso ed eseguire operazioni all'esterno della pagina Web, devi operare al di fuori della pagina Web, in ogni caso. :|

    Grazie della risposta,

    purtroppo  è quello che temevo anche io, eseguire operazioni all'esterno mi rimane complicato in quanto la conversione per fare usufruire l'applicazione via browser internet  è stata fatta per permetterla di utilizzarla anche da MAC o Android. Il mio cliente sostiene di aver visto una demo di un programma che copia i file sul server di dimensioni enormi in tempi pari alla copia via file system. Io però non sono riuscito a trovare nulla a riguardo neanche utilizzando oggetti di terzi parti. 

  • Re: Recuperare percorso del file dal client

    06/06/2024 - robinhood ha scritto:


    eseguire operazioni all'esterno mi rimane complicato in quanto la conversione per fare usufruire l'applicazione via browser internet  è stata fatta per permetterla di utilizzarla anche da MAC o Android.

    A maggior ragione, non ha senso parlare di “percorsi”, perché nel caso di Android questi sarebbero ancora meno significativi rispetto a un sistema desktop come Windows, oltreché dovresti effettuare una copia del file da un sistema (Android) su una locazione di rete usando un programma specifico per Android, quindi lo scenario si complica…

    06/06/2024 - robinhood ha scritto:


    Il mio cliente sostiene di aver visto una demo di un programma che copia i file sul server di dimensioni enormi in tempi pari alla copia via file system.

    Ma la problematica qual è: quella di controllare il processo durante la sua esecuzione, o una mera questione di prestazioni?

    Nel primo caso, l'ambiente JavaScript offre API specifico per l'upload di file con diverse possibilità di customizzazione (vedi questo articolo), se invece la questione risiede nelle performance, anche qui non vedo la problematica in quanto “postando” i dati del file dalla pagina Web verso il server, se il server riceve e salva i dati in ingresso, le prestazioni dovrebbero essere abbastanza simili a quelle della copia di file, al netto di un pochino di overhead derivante dal protocollo HTTP e altri dati necessari a veicolare i pacchetti.

    06/06/2024 - robinhood ha scritto:


    Io però non sono riuscito a trovare nulla a riguardo neanche utilizzando oggetti di terzi parti. 

    Credo che la cosa più sensata da fare è definire bene i requisiti di ciò che vorrebbe il cliente e quali sono le problematiche, da quelli poi si può ragionare sulle modalità e strumenti che consentono di perseguirli, al netto che tutto quello che è impossibile - spesso per una buona ragione - non si può fare. :)

  • Re: Recuperare percorso del file dal client

    06/06/2024 - Alka ha scritto:


    06/06/2024 - robinhood ha scritto:


    eseguire operazioni all'esterno mi rimane complicato in quanto la conversione per fare usufruire l'applicazione via browser internet  è stata fatta per permetterla di utilizzarla anche da MAC o Android.

    A maggior ragione, non ha senso parlare di “percorsi”, perché nel caso di Android questi sarebbero ancora meno significativi rispetto a un sistema desktop come Windows, oltreché dovresti effettuare una copia del file da un sistema (Android) su una locazione di rete usando un programma specifico per Android, quindi lo scenario si complica…

    Intanto grazie per la risposta:

    Attualmente stiamo obbligando gli utenti a scegliere il file da una cartella di rete "mappata" sul client. L'applicazione intercetta il nome del file, sa che si trova nella cartella che abbiamo predefinito e quindi lo può spostare archiviandolo nel posto giusto. Vorremmo fare scegliere anche la sottocartella, ma questa non la riesco ad intercettare. 

    06/06/2024 - robinhood ha scritto:


    Il mio cliente sostiene di aver visto una demo di un programma che copia i file sul server di dimensioni enormi in tempi pari alla copia via file system.

    Ma la problematica qual è: quella di controllare il processo durante la sua esecuzione, o una mera questione di prestazioni?

    Nel primo caso, l'ambiente JavaScript offre API specifico per l'upload di file con diverse possibilità di customizzazione (vedi questo articolo), se invece la questione risiede nelle performance, anche qui non vedo la problematica in quanto “postando” i dati del file dalla pagina Web verso il server, se il server riceve e salva i dati in ingresso, le prestazioni dovrebbero essere abbastanza simili a quelle della copia di file, al netto di un pochino di overhead derivante dal protocollo HTTP e altri dati necessari a veicolare i pacchetti.

    Adesso guardo l'articolo che mi hai segnalato e vedo se lo capisco. Io programmo in asp.net c# e vb.net non ho mai utilizzato JS. Per ora ho fatto tutto con il controllo fileupload o con aspupload o ajaxupload ma i tempi di caricamento sono molto più lunghi della copia via rete. Su file di un 1gb impiega oltre 10 minuti, perché se non ho capito male è come se scomponesse il file in binario e lo ricreasse sul server.

  • Re: Recuperare percorso del file dal client

    06/06/2024 - robinhood ha scritto:


    Attualmente stiamo obbligando gli utenti a scegliere il file da una cartella di rete "mappata" sul client. L'applicazione intercetta il nome del file, sa che si trova nella cartella che abbiamo predefinito e quindi lo può spostare archiviandolo nel posto giusto. Vorremmo fare scegliere anche la sottocartella, ma questa non la riesco ad intercettare. 

    Quello che potresti offrire è una selezione da pagina Web dei file che vedi all'interno di un file system di partenza ed eventualmente dare la possibilità di impartire un comando per spostarlo all'interno della locazione di destinazione desiderata.

    In pratica, non fai un upload, ma usi la pagina Web per visualizzare l'elenco dei file e le caratteristiche salienti (nome, tipo, dimensione, ecc.) con un tasto che indica al server di spostarlo da un'altra parte, ed è il server che poi effettuerà lo spostamento.

    L'ideale sarebbe inserire la richiesta di spostamento in una coda, in modo che la pagina Web si liberi subito e possa essere disponibile per altre richieste, mentre in background qualcosa riceve l'incarico di muovere il file e provvede “dietro le quinte” a farlo.

    06/06/2024 - robinhood ha scritto:


    Su file di un 1gb impiega oltre 10 minuti, perché se non ho capito male è come se scomponesse il file in binario e lo ricreasse sul server.

    E' ovvio. Quando fai l'upload di un file da una pagina ASP.NET, lui sta caricando il file sul server Web, il quale magari lo salva da un'altra parte, quindi non stai trasferendo da macchina a macchina, ma dal tuo browser al server, il quale poi salva i dati nel percorso di destinazione finale.

    Questo è il comportamento tipico, ma chi programma con queste tecnologie, almeno il ruolo di client e server e il protocollo HTTP a livello fondamentale, sarebbe bene che li conoscesse.

Devi accedere o registrarti per scrivere nel forum
5 risposte