webForumDet fria alternativet

Hantera byte array

4 svar · 420 visningar · startad av Uwe

UweMedlem sedan nov. 2003181 inlägg
#1

Har en webservice som returnerar en fil genom att läsa upp den i en byte[] som den returnerar och den blir base64 kodad.

Hur kan man plocka upp detta och återskapa filen?

lucgo446Medlem sedan aug. 2002221 inlägg
#2

System.IO.File.WriteAllBytes(AppDomain.CurrentDomain.BaseDirectory + "_tempUpload\\" + FileName, byteArr);

UweMedlem sedan nov. 2003181 inlägg
#3

System.IO.File.WriteAllBytes(AppDomain.CurrentDomain.BaseDir ectory + "_tempUpload\\" + FileName, byteArr);

Hade ju varit kanon om jag hade 2.0, men hur gör man i 1.1?

lucgo446Medlem sedan aug. 2002221 inlägg
#4

Aj då, surt... här är nåt gammalt jag hitta, vet ej om det funkar...

FileStream filen = new FileStream(ConfigurationManager.AppSettings["Root"].ToString() + "_tempUpload\\" + filename, FileMode.OpenOrCreate);
// MemoryStream ms = (MemoryStream)A1.Stream;
// byte[] input = ms.ToArray();
filen.Write(input, 0, input.Length);
filen.Close();

UweMedlem sedan nov. 2003181 inlägg
#5

Tack för koden, det var ungefär som jag hade testat men får det inte att funka nu heller. Antagligen är det nåt fel på webservicen som ser ut så här:

[WebMethod]
public byte[] GetFile(string filename)
{
   byte[] Buffer = null;
   FileStream fs = null;
   String FullPath = null;
   long FileSize;	
   
   FullPath = Server.MapPath("") + "\\tmp\\" + filename;
   fs = new FileStream(FullPath, FileMode.Open);
   FileSize = fs.Length;
   Buffer = new byte[(int)FileSize];
   fs.Read(Buffer, 0, (int)FileSize);
   fs.Close();

   return Buffer;
}

Går det inte att göra så?

134 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
131 ms — hämta tråd, inlägg och bilagor (db)