Je me demandais comment convertir un fichier que j'ai sur mon serveur (pdf/excel/ppt) en ByteArray. La raison pour laquelle je veux faire ceci est d'afficher la boîte de dialogue ouvrir/enregistrer en tant qu'utilisateur et je dois définir le Content-Type à octet-stream. Le dialogue montre bien avec juste navigateToURL() mais pour les pdf il est le paramètre de navigateur local de l'utilisateur. Pour un URLRequest, je dois définir les données en tant que ByteArray. Je suis en train d'utiliser le code situé ici:Comment puis-je convertir un fichier en un ByteArray dans Flex?
Répondre
Pourvu que vous ciblez Flash Player 10, cela devrait fonctionner:
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" creationComplete="loadFile()">
<mx:Script>
<![CDATA[
private var loadedFile:ByteArray;
private function loadFile():void
{
var request:URLRequest = new URLRequest("http://test.enunciato.org/sample.pdf");
var urlLoader:URLLoader = new URLLoader(request);
urlLoader.addEventListener(Event.COMPLETE, onURLLoaderComplete);
urlLoader.dataFormat = URLLoaderDataFormat.BINARY;
urlLoader.load(request);
}
private function onURLLoaderComplete(event:Event):void
{
loadedFile = event.target.data;
}
private function saveLoadedFile():void
{
var file:FileReference = new FileReference();
file.save(loadedFile, "SampleDoc.PDF");
}
]]>
</mx:Script>
<mx:Button label="Save Image" horizontalCenter="0" verticalCenter="0" click="saveLoadedFile()" />
</mx:Application>
En supposant que vous chargez d'abord le fichier - dans cet exemple, l'opération de chargement se produit sur creationComplete et les octets sont stockés hors de loadedFile - les octets doivent être prêts à être sauvegardés lorsque l'utilisateur clique sur Enregistrer l'image. Testé et vérifié l'exemple fonctionne. J'espère que cela aide!
Je pense que vous pouvez faire quelque chose comme ça pour aller chercher le tableau d'octets:
private var fileBytes:ByteArray = null;
private static function loadByteArray(url:String):void {
var loader:Loader = new Loader();
loader.contentLoaderInfo.addEventListener(Event.COMPLETE,
function(e:Event):void {
fileBytes = e.currentTarget.bytes;
});
loader.load(new URLRequest(encodeURI(url)));
}
// static initializer
{ loadByteArray("my url here"); }
Edit: Je n » t tester la fonction ci-dessus. Si vous voulez charger des octets directement, je suggérerais d'utiliser la réponse de Christian Nunciato, puisque c'est mieux et testé. Cependant, il semble que vous souhaitiez récupérer un fichier directement à partir de votre serveur plutôt que d'effectuer un trajet tripartite (le fichier provient du serveur, vous renvoyez les octets au serveur, puis ils reviennent). au client). Dans ce cas, vous pouvez essayer de définir le type de contenu et la disposition du contenu en pièce jointe sur le serveur (par exemple, pour pdf, cela signifie que le type de contenu est "application/pdf" et "Content-Disposition: attachment; pdf "à vos en-têtes de réponse).
- 1. Comment convertir un nombre en bytearray en bit endian order
- 2. flex core ByteArray Image
- 3. Comment enregistrer un fichier dans Flex avec Flash 9
- 4. Comment convertir un fichier System.Web.HttpPostedFileBase en System.Web.HttpPostedFile?
- 5. Comment convertir un chemin de fichier en URL dans ASP.NET
- 6. Un moyen de convertir une chaîne normale dans ActionScript 3 en un ByteArray de codes de caractères Latin-1?
- 7. Convertir un fichier XML en DBF
- 8. API ArcGIS Flex: convertir un point d'écran en MapPoint
- 9. Comment convertir un fichier XML en base de données?
- 10. Comment convertir un fichier XML en classe .Net?
- 11. Comment convertir un fichier java.util.Map en Scala Map
- 12. Télécharger un fichier dans AIr, Flex
- 13. Comment convertir un sqlite3_int64 en un long?
- 14. Comment puis-je convertir un fichier HTML dans un fichier pdf dans Delphi
- 15. Comment convertir un fichier RDL en fichier RDLC avec un schéma différent?
- 16. Comment ajouter des icônes à un PopUpMenuButton dans Flex 3 en utilisant un fichier XML
- 17. Comment convertir un objet en int dans un convertisseur?
- 18. Comment convertir un contenu STDIN en tableau?
- 19. Comment puis-je convertir HSSFWorkbook dans un fichier CSV ..?
- 20. Convertir le code en Array ..... en Flex
- 21. Flex: XMLList d'attractubites .... convertir en noeuds?
- 22. Convertir un nombre en Excel en chaîne?
- 23. Convertir un tableau d'octets en un tableau court en C#
- 24. Comment convertir un DataTable/DataSet en ObjectDataSource
- 25. iTextSharp - Comment convertir un document en octet []
- 26. Comment convertir un rectangle en rectangleF?
- 27. Comment convertir un balisage wiki en RTF?
- 28. Comment convertir un nombre en octet?
- 29. comment convertir un pretime en .net datetime
- 30. Comment convertir un tableau d'octets en chaîne?