Domanda

sto caricando un file utilizzando un semplice controllo FileUpload nome theFile (ASP.NET). Sto cercando di ottenere il percorso assoluto del file, ma thefile.PostedFile.FileName e thefile.FileName sono esattamente lo stesso, solo il nome del file, nessun percorso! Non posso usare Server.MapPath perché si risparmia questo file su un server diverso (il trasferimento tramite array di byte attraverso un webservice).

Si rompe in questa linea:

Dim fStream As New FileStream(thefile.FileName, FileMode.Open, FileAccess.Read)

perché sta prendendo il nome del file e la mappatura al percorso relativo della mia VS! Ho bisogno il percorso assoluto ...

È stato utile?

Soluzione

Un file caricato tramite HTTP non potrà mai contenere il percorso completo sul (client) macchina a distanza - si potrebbe dare via informazioni sulla loro struttura di directory, e quindi è considerato un rischio per la sicurezza. Inoltre, che cosa servirebbe? Se qualcuno si sta caricando un file da su internet, perché si sta tentando di aprire un FileStream sul (server asp.net) macchina locale al percorso che esisteva sulla loro macchina?

File online effettivamente venire attraverso come un flusso di byte come parte della richiesta. È necessario accedere al FileBytes proprietà del controllo per accedere al file, oppure chiama i SaveAs () per salvarlo al server. Nel tuo caso, probabilmente si potrebbe ottenere solo i byte e spedirli fuori al webservice chiamata è necessario fare.

Altri suggerimenti

  

(trasferimento mediante array di byte attraverso un webservice).

Dal momento che si sta richiedendo l'array di byte del file, perché non accedere array di byte del file tramite la proprietà theFile.FileBytes?

Ecco il riferimento alla proprietà FileBytes del controllo web FileUpload: http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.fileupload.filebytes.aspx

Se si desidera accedere direttamente l'oggetto Stream, è possibile utilizzare la proprietà fileContent. Ecco il riferimento alla proprietà fileContent del controllo web FileUpload: http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.fileupload.filecontent.aspx

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top