Pregunta

Estoy subiendo un archivo mediante un sencillo control FileUpload theFile llamado (ASP.NET). Estoy tratando de obtener la ruta absoluta del archivo, pero thefile.PostedFile.FileName y thefile.FileName son los mismos, sólo el nombre de archivo exacto, hay un camino! No puedo usar Server.MapPath porque se ahorra este archivo en un servidor diferente (la transferencia a través de la matriz de bytes a través de un servicio web).

Se rompe en esta línea:

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

debido a que está tomando el nombre de archivo y la cartografía a la ruta relativa de mi VS! Necesito la ruta absoluta ...

¿Fue útil?

Solución

Un archivo cargado a través de HTTP no contendrá la ruta completa en la máquina remota (cliente) - podría dar información sobre su estructura de directorios, y por lo tanto se considera un riesgo de seguridad. Además, ¿para qué sería? Si alguien le está cargando un archivo de en internet, ¿por qué estar tratando de abrir un filestream en su (servidor asp.net) local de la máquina a la ruta que existía en su máquina?

Archivos cargados en realidad vienen a través como un flujo de bytes como parte de la solicitud. Es necesario para acceder a la FileBytes propiedad del control para obtener el archivo, o llame a la SaveAs () para guardarlo en el servidor. En su caso, probablemente podría obtener sólo los bytes y enviarlos a la llama a servicio web necesita hacer.

Otros consejos

  

(transferencia a través de la matriz de bytes a través de un servicio web).

Puesto que usted está actualmente requiere la matriz de bytes del archivo, por qué no acceder matriz de bytes del archivo a través de la propiedad theFile.FileBytes?

Esta es la referencia a la propiedad FileBytes del control de la tela FileUpload: http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.fileupload.filebytes.aspx

Si desea tener acceso al objeto de secuencia directa, puede utilizar la propiedad fileContent. Aquí está la referencia a la propiedad fileContent del control de la tela FileUpload: http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.fileupload.filecontent.aspx

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top