Come scaricare un file zip nel proprio filesystem

giovedì 07 giugno 2007 - 10.00

tcoder Profilo | Newbie

Ciao a tutti,

ho la necessità di scaricare dal web un file zip, ma ci sono delle difficoltà in più.

io non ho il nome del file che scarico in quanto viene generato al volo quando si inserisce l'url che punta ad una pagina .jsp e questa per risposta letti i parametri passati ti restituisce il file zip.

avevo fatto una cosa del genere:

string HttpPost(string uri, string parameters) { WebRequest webRequest = WebRequest.Create(uri); webRequest.ContentType = "application/x-www-form-urlencoded"; webRequest.Method = "POST"; byte[] bytes = Encoding.ASCII.GetBytes(parameters); Stream os = null; try { webRequest.ContentLength = bytes.Length; os = webRequest.GetRequestStream(); os.Write(bytes, 0, bytes.Length); MessageBox.Show(os.CanWrite.ToString()); } catch (WebException ex) { MessageBox.Show(ex.Message, "HttpPost: Request error", MessageBoxButtons.OK, MessageBoxIcon.Error); } finally { if (os != null) { os.Close(); } } try { WebResponse webResponse = webRequest.GetResponse(); if (webResponse == null) { return null; } string path = "C:\\archivio.zip"; Stream stream = webResponse.GetResponseStream(); byte[] inBuffer = ReadFully(stream, 32768); FileStream fstream = new FileStream(path, FileMode.OpenOrCreate, FileAccess.Write); fstream.Write(inBuffer, 0, inBuffer.Length - 1); fstream.Close(); stream.Close(); return "OK"; }catch(Exc....................................){ ............... }

Questo codice mi scarica il file che dovrebbe essere (il numero di bytes è corretto) ma quando vado a decomprimerlo con winrar o winzip mi da errore dicendo che è corrotto.

mi potete dare qualche info in +?


Grazie


munissor Profilo | Senior Member

Sei sicuro che nella funzione ReadFully allochi un buffer di dimensioni corrette??

Porebbe essere la il problema..

tcoder Profilo | Newbie

Si le dimensioni sono appropriate, ma ho trovato un codicino che invece di usare webrequest

usa HTTPWebRequest,

non capisco la differenza ma adesso funziona tutto.

Posto il codice se se ne avesse necessità

Il codice sorgente non è stato renderizzato qui
perchè non c'è sufficiente spazio.
Clicca qui per visualizzarlo in una nuova finestra

Grazie
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5