Convertir le fichier reçu de jquery en tableau d’octets

J’ai besoin d’aide pour convertir un fichier reçu d’un jquery ajax en tableau d’octets. J’utilise un plugin appelé ajaxfileupload puis, à partir d’un appel jquery ajax, j’envoie un fichier depuis un contrôle fileupload à un gestionnaire. Voici mon code de gestionnaire:

if (context.Request.Files.Count > 0) { ssortingng path = context.Server.MapPath("~/Temp"); if (!Directory.Exists(path)) Directory.CreateDirectory(path); var file = context.Request.Files[0]; ssortingng fileName; if (HttpContext.Current.Request.Browser.Browser.ToUpper() == "IE") { ssortingng[] files = file.FileName.Split(new char[] { '\\' }); fileName = files[files.Length - 1]; } else { fileName = file.FileName; } ssortingng fileType = file.ContentType; ssortingng strFileName = fileName; FileStream fs = new FileStream("~/Temp/" + strFileName, FileMode.Open, FileAccess.Read); BinaryReader br = new BinaryReader(fs); Byte[] imagebytes = br.ReadBytes((Int32)fs.Length); br.Close(); fs.Close(); DBAccess dbacc = new DBAccess(); dbacc.saveImage(imagebytes); ssortingng msg = "{"; msg += ssortingng.Format("error:'{0}',\n", ssortingng.Empty); msg += ssortingng.Format("msg:'{0}'\n", strFileName); msg += "}"; context.Response.Write(msg); } 

J’enregistre le fichier dans un dossier au sein d’un projet, puis j’essaie de récupérer ce fichier et de l’enregistrer dans la firebase database. Je peux vous assurer que l’image est en cours d’enregistrement dans le dossier temporaire. Le problème vient de la ligne avec (*), le chemin du fichier est incorrect. C’est le chemin du fichier en cours de récupération. “‘C: \ Program Files \ Fichiers communs \ Microsoft Shared \ DevServer \ 10.0 \ ~ \ Temp \ 2012-06-03 01.25.47.jpg’.”. Le dossier temporaire est situé localement dans mon projet et je souhaite récupérer l’image dans ce dossier. Comment puis-je définir le chemin du fichier à l’emplacement souhaité? Ou existe-t-il un autre moyen de convertir un fichier en tableau d’octets après l’avoir récupéré à partir d’un appel jquery ajax?

Crédits à ces articles:

  • Enregistrer et récupérer des fichiers de la firebase database SQL Server en utilisant ASP.NET
  • Téléchargement de fichier async avec jQuery et ASP.NET

Juste ces 3 lignes feront:

  int filelength = file.ContentLength; byte[] imagebytes = new byte[filelength ]; file.InputStream.Read(imagebytes , 0, filelength ); 
 using (var stream = upload.InputStream) { // use stream here: using StreamReader, StreamWriter, etc. }