Obtenga el nombre de archivo de URL con la ubicación del encabezado PHP -- # camp Relacionados El problema

Get filename from URL with php header location


-2
vote

problema

Español

Tengo un sitio web en PHP este código

  MSSQL111  

¿Y cómo me entiendo en C # al nombre de archivo? Este archivo es solo prueba. Voy a enviar actualizaciones para SW desde Actualizar Server.

Necesito el nombre de archivo para esto en C #:

  MSSQL2  
Original en ingles

I have a website in php this code

switch($type){     case 'check':         switch($action){             case 'update':                 echo "1.0.0.1";             break;         }     break;     case 'download':         $file = './ss/godzila.avi';         if (file_exists($file)) {             header("Location: {$file}");             exit;         }else{             header("HTTP/1.0 404 Not Found");         }     break; } 

and how I get in c# to filename? This file is only test. I will send updates for SW from update server.

I need file name for this in c#:

FileStream newFile = new FileStream(filePatch+fileName, FileMode.Create); newFile.Write(downloadedData, 0, downloadedData.Length); 
  
         
         

Lista de respuestas

0
 
vote
vote
La mejor respuesta
 

Puede simplemente verificar el short1 al descargar el archivo, deben contener los encabezados que envió.

Supongo que un ejemplo que podría usar es este, lo adapté un poco para su uso específico (NL: el nombre de archivo que necesita para obtener)

  short2  
 

You could simply check the HttpWebResponse.Headers when downloading the file, they should contain the headers you sent along.

I guess an example you could use is this one, i adapted it a bit for your specific usage (nl: the filename that you need to get)

using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Net; using System.Text;  namespace wget {     class Program     {         static bool DownloadFile(string url, string targetDirectory, out string realFilename, string defaultName = "unknown.txt")         {             // first set the filename to a non existing filename             realFilename = string.Empty;             bool succes = false;              try             {                 HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);                 request.Method = WebRequestMethods.Http.Get;                 using (HttpWebResponse response = (HttpWebResponse)request.GetResponse())                 {                     if (response.Headers.HasKeys())                     {                         /* in case no header found that is called "Location" you get your default set filename as a fallback */                         realFilename = Path.Combine(targetDirectory, response.Headers["Location"] ?? defaultName);                     }                     else                     {                         realFilename = Path.Combine(targetDirectory, defaultName);                     }                     using (Stream responseStream = response.GetResponseStream())                     {                         int blockSize = 8192;                         byte[] buffer = new byte[blockSize];                         int result;                         if (!Directory.Exists(targetDirectory))                         {                             Directory.CreateDirectory(targetDirectory);                         }                         using (FileStream targetStream = new FileStream(realFilename, FileMode.Create, FileAccess.Write))                         {                             do                             {                                 result = responseStream.Read(buffer, 0, buffer.Length);                                 targetStream.Write(buffer, 0, result);                             } while (result > 0);                         }                     }                 }                 succes = true;             }             catch (WebException wex)             {                 if (wex.Response != null)                 {                     wex.Response.Close();                 }                 Console.WriteLine("WebException occured: {0}", wex.Message);             }             catch (FileNotFoundException fnfe)             {                 Console.WriteLine("FileNotFoundException occured: {0} not found! {1}", fnfe.FileName, fnfe.Message);             }             catch (Exception ex)             {                 Console.WriteLine("Error occured: {0}", ex.Message);             }              return succes;         }          static void Main(string[] args)         {             string filename;             if (DownloadFile("http://www.google.com", Environment.CurrentDirectory, out filename))             {                 Console.WriteLine("Saved file to {0}", filename);             }             else             {                 Console.WriteLine("Couldn't download file!");             }             Console.ReadLine();         }     } } 
 
 

Relacionados problema

701  Cómo convertir decimal a doblarse en C #  ( How to convert decimal to double in c sharp ) 
Quiero usar un Track-Bar para cambiar una opacidad double1 . Este es mi código: decimal trans = trackBar1.Value / 5000; this.Opacity = trans; Cuan...

65  Punto flotante Número de análisis: ¿Hay un algoritmo de captura?  ( Floating point number parsing is there a catch all algorithm ) 
Una de las partes divertidas de la programación multicultural son los formatos de números. Los estadounidenses usan 10,000.50 los alemanes usan 10.000,50...

107  ¿Cómo obtengo una lista distinta y ordenada de nombres de un DataQ usando LINQ?  ( How do i get a distinct ordered list of names from a datatable using linq ) 
Tengo un DataTable con una columna Name . Quiero generar una colección de los nombres únicos ordenados alfabéticamente. La siguiente consulta ignora la clá...

80  ¿Cómo imprimo un documento HTML de un servicio web?  ( How do i print an html document from a web service ) 
Quiero imprimir HTML desde un servicio web C #. El control del navegador web está exagerado, y no funciona bien en un entorno de servicio, ni funciona bien en...

65  Decodificación T-SQL FUNCIONES EN C # / VB.NET  ( Decoding t sql cast in c vb net ) 
Recientemente, nuestro sitio ha sido desalentado con el resurgimiento de la asprox botnet inyección de SQL Ataque. Sin entrar en detalles, el ataque inten...

105  Temporizador confiable en una aplicación de consola  ( Reliable timer in a console application ) 
Soy consciente de que en .NET Hay tres tipos de temporizador (consulte Comparando las clases de temporizador en la biblioteca de clase de Framework ). H...

1563  Calcular el tiempo relativo en C #  ( Calculate relative time in c sharp ) 
Dado un valor específico double16 , ¿cómo mostrar el tiempo relativo, como: hace 2 horas hace 3 días hace un mes ...

1955  ¿Cómo calculo la edad de alguien en función de un cumpleaños tipo DateTime?  ( How do i calculate someones age based on a datetime type birthday ) 
Dado un Form5 que representa el cumpleaños de una persona, ¿cómo calculo su edad en años? ...

141  Llenando un conjunto de datos o un DataTable desde un conjunto de resultados de consulta LINQ  ( Filling a dataset or a datatable from a linq query result set ) 
¿Cómo expone una consulta LINQ como un servicio web de ASMX? Por lo general, desde el nivel de negocios, puedo devolver un double20 998877766220 998877766...

55  Comprimiendo / descomprimiendo carpetas y archivos  ( Compressing decompressing folders files ) 
¿Alguien sabe de una buena manera de comprimir o descomprimir archivos y carpetas en C # rápidamente? Manejo de grandes archivos podría ser necesario. ...




© 2022 respuesta.top Reservados todos los derechos. Centro de preguntas y respuestas reservados todos los derechos