Je suis tout à fait conscient du fait que même avec le nouveau FileAPI, il n'est pas possible d'accéder au chemin d'accès local d'un fichier ajouté à l'aide d'un champ de saisie de fichier ou de glisser-déplacer. Qu'il s'agisse ou non, c'est mauvais ou moche, ce n'est pas le problème ici. Selon les spécifications FileAPI, l'accès au fichier local ne doit pas être implémenté, et je ne supprime pas le souffle.
Mais prévoyons simplement que je suis dans une situation avec les paramètres fixes suivants:
Et par l'accès, je ne veux pas dire les données du fichier d'accès, mais plutôt être capable de relayer un événement de glisser-déposer / sélectionner de fichier dans une autre API en alimentant le chemin d'accès local du fichier tiers afin que le tiers Le fichier et faire une sorte de travail sur celui-ci. Cela peut être assimilé à l'utilisation d'un champ [type = file] d'entrée comme vous le feriez dans OpenFileDialog dans .NET – c'est-à-dire qu'il s'agit d'alimenter l'application dans un chemin de fichier, pas un fichier réel .
Je me rends compte que ce n'est probablement pas possible. Mais je pense aussi qu'il doit y avoir une sorte de solution au problème.
Quelques idées avec lesquelles j'ai été impliqué sont:
… et c'est à propos de ça.
Des suggestions snazzy? Des mots sages? Liens utiles? Des commentaires Snarky?
Merci.
Edit: Pour tout curieux, il était très simple d'utiliser Silverlight selon la suggestion de jgauffin ci-dessous.
À partir du code Silverlight (utilisant des privilèges élevés):
private void fileBtn_Click(object sender, RoutedEventArgs e) { //prompt file select dialog in Silverlight: var dlg = new OpenFileDialog(); dlg.ShowDialog(); //call JavaScript method and feed it the file path: HtmlPage.Window.Invoke("onFileSelected", dlg.File.FullName); }
Vous devrez probablement utiliser quelque chose qui fonctionne dans le navigateur comme flash ou silverlight.
Puisqu'il s'agit d'une application interne, j'utiliserai silverlight car tout le reste est dans .NET. Il ne devrait pas être nécessaire de faire en sorte que le fichier accède à une partie dans le plugin.
Voici un article sur l'accès aux fichiers locaux: http://www.wintellect.com/CS/blogs/jprosise/archive/2009/12/16/silverlight-4-s-new-local-file-system-support.aspx .
Le serveur hébergeant le site a-t-il accès au réseau de PC?
Vous pouvez simplement énumérer tous les fichiers de cette façon … construire un petit script ajax comme une boîte de dialogue de fichier qui aura php ou quoi que ce soit renvoyant la structure
Aucun plugin nécessaire, fonctionne sur tous les navigateurs … 🙂