Question

Je télécharger un fichier à l'aide d'un simple theFile nommé contrôle FileUpload (ASP.NET à). J'essaie d'obtenir le chemin absolu du fichier, mais thefile.PostedFile.FileName et thefile.FileName sont exactement les mêmes, seul le nom du fichier, pas de chemin! Je ne peux pas utiliser Server.MapPath parce que je libérerons ce fichier sur un autre serveur (transfert via tableau d'octets par un webservice).

Il se brise à cette ligne:

Dim fStream As New FileStream(thefile.FileName, FileMode.Open, FileAccess.Read)

car il prend le nom et la plaquant sur le chemin relatif de mon VS! J'ai besoin du chemin absolu ...

Était-ce utile?

La solution

Un fichier téléchargé via HTTP ne contiendra jamais le chemin complet sur la machine distante (client) - il pourrait donner des informations sur leur structure de répertoire, et est donc considéré comme un risque pour la sécurité. De plus, à quoi serait-il? Si quelqu'un vous téléchargez un fichier depuis sur Internet, pourquoi voudriez-vous essayer d'ouvrir un filestream sur votre machine locale (serveur asp.net) sur le chemin qui existait sur leur machine?

Les fichiers sont mises en ligne fait par un flux d'octets dans le cadre de la demande. Vous devez accéder à la FileBytes de contrôle pour obtenir le fichier, ou appelez la méthode SaveAs () pour enregistrer sur le serveur. Dans votre cas, vous pourriez probablement obtenir les octets et les envoyer à l'webservice vous appelez besoin de faire.

Autres conseils

  

(transfert par l'intermédiaire du tableau d'octets par un service web).

Puisque vous êtes exigeant actuellement le tableau d'octets du fichier, pourquoi ne pas accéder au tableau d'octets du fichier par la propriété theFile.FileBytes?

Voici la référence à la propriété FileBytes du contrôle Web FileUpload: http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.fileupload.filebytes.aspx

Si vous souhaitez accéder à l'objet Stream directement, vous pouvez utiliser la propriété ContenuFichier. Voici la référence à la propriété ContenuFichier du contrôle Web FileUpload: http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.fileupload.filecontent.aspx

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top