Pregunta

utiliza Entrada archivo HTML en lugar de Web Control FileUpload . No pregunte por qué, pero tengo que!

HTML:

<input type="file" id="image1" class="listUploadAdd" name="ImageAdd1" />

Código atrás:

Dim ImageAdd1 As String = Request.Form("ImageAdd1").ToString()

he echado un vistazo a "C: /Orange.jpg" para subir y el resultado en el código subyacente es sólo el nombre de la imagen "orange.jpg" y no el pleno "C: /Orange.jpg" que se necesita para obtener la archivo desde una unidad local que va a cargar.

¿Cuál es la mejor manera de capturar la ruta de la imagen completa del código detrás para ser cargado en el servidor?

Gracias.

¿Fue útil?

Solución

¿Se puede añadir un runat="server" al elemento de entrada? :) Entonces es bastante fácil de almacenar el archivo en el servidor

Request.Files("File1").SaveAs("c:\somedir\yourfile.txt")

Si desea que el nombre de archivo original y la ruta, intente lo siguiente:

Dim filename As string = Request.Files("File1").FileName

Para descargar el archivo sin utilizar un atributo runat="server", usted puede hacer esto:

Dim file = Request.Files("File1")
Dim buf(file.ContentLength) As Byte
file.InputStream.Read(buf, 0, file.ContentLength)
IO.File.WriteAllBytes("C:\somedir\yourfile.txt", buf)

Pero hay que establecer el enctype en el elemento de formulario en la página HTML:

<form id="yourform" runat="server" enctype="multipart/form-data">

Otros consejos

  

he echado un vistazo a "C: /Orange.jpg" para subir y el resultado en el código subyacente es sólo el nombre de la imagen "orange.jpg" y no el pleno "C: /Orange.jpg" que se necesita para obtener la archivo desde una unidad local que va a cargar.

Usted no será capaz de sacar el archivo de la máquina del cliente. Cuando estás desarrollando su programa, el cliente y el servidor son la misma máquina, pero cuando se implementa, el servidor y el cliente serán diferentes máquinas. Cuando se ejecuta el código subyacente (en el servidor), si se intenta abra C: \ orange.jpg que será intentar abrirlo fuera del disco duro del servidor. probablemente no existe este archivo.

Cuando se carga un archivo desde una página web, se ha publicado en el servidor como parte del mensaje POST. Puede obtener el archivo de este Formulario de la colección. No es necesario para convertir el cargador al control ASP.NET, o añadir el atributo runat="server". En tanto que su puesto el formulario, que contiene el elemento de entrada que se envía al servidor.

El contenido del archivo se almacena como una matriz de bytes en forma. Puede guardar esta matriz de bytes como un archivo en algún lugar del disco duro del servidor.

En resumen:

Usted no necesita saber la ruta al archivo en la máquina del cliente, ya que no se puede acceder a él de todos modos. Utilizar los datos del archivo que se contabiliza como parte del formulario de envío en lugar de guardar una copia del archivo en el servidor.

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