Pregunta sobre c#, .net – Obtenga el tamaño del archivo de imagen antes de descargar desde la web

10

Estoy descargando archivos de imagen desde la web utilizando el siguiente código en mi aplicación de consola.

WebClient client = new WebClient();
client.DownloadFile(string address_of_image_file,string filename);

El código está funcionando absolutamente bien.

Quiero saber si hay alguna forma de obtener el tamaño de este archivo de imagen antes de descargarlo.

PD: en realidad, he escrito código para hacer que un rastreador se mueva por el sitio descargando archivos de imagen. Así que no sé de antemano su tamaño. Todo lo que tengo es la ruta completa del archivo que se ha extraído de la fuente de la página web.

Posible duplicado deObtener http: /.../ Tamaño del archivo Francis

Tu respuesta

4   la respuesta
6

Largancia de contenido Encabezado HTTP entonces será el tamaño del archivo de imagen. Sin embargo, si el servicio web desea "transmitir" datos a usted (utilizando la codificación Chunk), no lo sabrá hasta que se descargue el archivo completo.

11

ntes extensiones como .GIF, .JPG, etc. Puede crear una variable o envolver el código dentro de una Declaración de Cambio de Caso.

System.Net.WebClient client = new System.Net.WebClient();
client.OpenRead("http://someURL.com/Images/MyImage.jpg");
Int64 bytes_total= Convert.ToInt64(client.ResponseHeaders["Content-Length"])
MessageBox.Show(bytes_total.ToString() + " Bytes");
Cuando quiero descargar usando el mismo cliente web, ¿debo cerrar la conexión abierta (para leer el tamaño) o qué debo hacer exactamente? Mohammed Noureldin
¿Nos puede mostrar el rastro de pila de la caída? knocte
Esto funciona como un encanto para mí, pero después del tercer uso detiene todo y se bloquea. Incluso traté de llamar al cliente. Disolver () pero no está ayudando ... ¿Tiene alguna idea de por qué podría estar sucediendo eso? ¡Gracias! Thpramos
client.OpenRead () abre un flujo legible para los datos descargados. Por eso hay que cerrarlo después de su uso. Algo como esto evita que tu aplicación se bloquee:using (var sr = client.OpenRead(uri)) { ... } jurajvt
0

C # Obtener http: /… / Tamaño del archivo donde tu pregunta esta completamente explicada Está utilizando la solicitud HEAD HTTP para recuperar el tamaño del archivo, pero también puede leer el encabezado "Content-Length" durante la solicitud GET antes de leer el flujo de respuestas.

-1. Hazle un comentario o agrega un resumen del enlace a la respuesta. Alexei Levenkov
Las preguntas y respuestas en el enlace especificado no necesitan explicación y es difícil agregar algo. No quiero copiar y pegar la respuesta de la publicación original. De todos modos, gracias por el comentario, lo tendré en cuenta en el futuro. Perevalov
Bienvenido a SO. Se espera que las respuestas de SO contengan un resumen de un enlace - verifiquePreguntas más frecuentes - "Proporcionar contexto para los enlaces". Alexei Levenkov
2

y verificar el contenido en la respuesta.

Preguntas relacionadas