Ciao a tutti,
devo spedire un file .zip (o qualsiasi formato) da un server ad un altro in quanto non posso usare l'ftp, utilizzando c#.
L'unico metodo che teoricamente posso usare è HTTP.
Dovrei leggere il file residente sul server A e in qualche modo mandarlo ad una pagina aspx che risiede sul server B dove recupera questo file e lo salva.
Vi posto il codice che utilizzo:
Codice che crea la put dal server A al server B
codice:FileStream inFile = new FileStream(Server.MapPath("../../Temp/16.jpg"), System.IO.FileMode.Open, System.IO.FileAccess.Read); byte[] binaryData = new Byte[inFile.Length]; long bytesRead = inFile.Read(binaryData, 0, (int)inFile.Length); inFile.Close(); string base64String = "file1="+Convert.ToBase64String(binaryData, 0, binaryData.Length); string strUrl = "http://11.11.11.111/Prova/recuperFile.aspx"; XMLHTTP objXMLhttp = new XMLHTTP(); objXMLhttp.open("POST", strUrl, false, "", ""); objXMLhttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded"); objXMLhttp.send(base64String); if (objXMLhttp.status == 200) { msgErrore.Value=objXMLhttp.responseText; }else{ msgErrore.Value=objXMLhttp.responseText; }
Codice che recupera il file in fomato base64 sul server B
codice:path=Server.MapPath(NomeFile); byte[] binaryData=Convert.FromBase64String(Request.Form["file1"].ToString()); FileStream fs= new FileStream(path,FileMode.Create); fs.Write(binaryData, 0, binaryData.Length); fs.Close();
Non mi funziona perchè quando riconverto il file in byte mi dice che il formato base64 contiene caratteri non validi .
Questo me lo fa per tutti i file tranne che per i file di testo tipo .rtf.
Ciao e grazie mille in anticipo!!!

Rispondi quotando