2009-09-01 10 views
3

Comment puis-je ouvrir le fichier et obtenir son contenu en tant que ByteArray dans AS3. J'ai vu des exemples, en utilisant FileStream & classes de fichiers de flex.filesystem, mais le doc dit que c'est pour AIR seulement.ouvrir les fichiers locaux dans AS3

Merci,

Nava

+0

Vous avez posé une question particulièrement chargée qui nécessitera un peu plus d'informations avant de pouvoir répondre avec plus de généralités; Il existe plusieurs façons de le faire, mais elles dépendent toutes des spécificités de votre cas d'utilisation. Quel type de contenu essayez-vous de charger (par exemple, JPG, PNG)? Que voulez-vous faire après l'avoir chargé? Demandez-vous à l'utilisateur de naviguer en premier? Donc, si vous n'avez pas encore trouvé de solution, revenez avec une mise à jour et nous verrons si nous pouvons vous aider à la comprendre, car les réponses postées sont en quelque sorte partie-droite, partie-non, selon ces détails manquants. –

+0

J'ai ajouté un commentaire sur la réponse de Koen concernant la politique de sécurité des fichiers locaux. hth –

+0

J'essayais de charger un fichier binaire shp, pas en naviguant, juste par nom. Mon problème était, que je ne l'ai pas mis au bon endroit ... De l'autre côté, c'est exact que le compilateur de Flex émet des avertissements de sécurité en essayant d'ouvrir un dossier local. Quand je l'ai implémenté en utilisant FileRefrence je pouvais l'ouvrir et lire ses données. –

Répondre

3

Vous pouvez soit URLLoader avec content ensemble pour binaire ou utiliser URLStream. Qu'est-ce que vous avez besoin de charger?

+0

Merci pour votre réponse. Je dois charger le fichier de données binaires local –

+0

aucun problème. un urloader shouuld faire: var binLoader: URLLoader = new URLLoader(); binLoader.dataFormat = URLLoaderDataFormat.BINARY; binLoader.addEventListener (Event.COMPLETE, binLoaded); BinLoader.load (nouvelle demande d'URL ('yourfile.bin')); –

+0

Je pense que c'était ma faute, que le code n'a pas fonctionné. Je n'ai pas pu trouver le fichier, puisque je ne l'ai pas mis près de Main.mxml, plutôt près de la source de code ... –

2

Flex sécurité empêche un accès simple aux fichiers locaux. La solution de contournement la plus couramment utilisée consiste à demander à l'utilisateur de sélectionner un fichier, de l'envoyer à votre serveur, puis de télécharger ce fichier à partir de votre serveur.

Il existe un accès à un stockage local (à l'aide de SharedObject) pour stocker et lire les paramètres.

HTH,

Koen

+0

J'ai vraiment besoin que ce soit local. Est-ce un gros problème pour ouvrir un fichier local sur Flex? Peut-être que ce devrait être une archive? –

+0

Si vous utilisez uniquement des fichiers locaux, vous pouvez définir le compilateur pour utiliser une stratégie de sécurité de fichier local en ajoutant -use-network = false en tant qu'argument de compilateur dans les paramètres du compilateur. bonne chance! –

4

Vous pouvez utiliser un objet FileReference pour rechercher un fichier, puis accéder aux octets bruts via la propriété « données » sur le FileReference lorsque l'événement « complet » est envoyé.

Questions connexes