Bonjour -
Je tente de sauvegarder un fichier httppostedfilebase (qui sera toujours un simple fichier CSV) à une variable de session, comme: comme vous le voyez, je suis en train de jeter Importingfile dans ma classe NoteImport. Actuellement, la propriété Importivefile est un type httppostedfileebase accessible publiquement. P> La première fois que j'utilise cette propriété à mon service (méthode qui crée une liste des valeurs d'en-tête), je n'ai aucun problème: p> < Pré> xxx pré> Ce qui précède fonctionne bien et retourne exactement ce dont j'ai besoin pour le moment. p> Mon problème est avec le code ci-dessous. Lorsque j'appelle readline (), cela n'obtient rien de la base httppostedfilebase. p> J'ai tenté de fermer le httppostedfileBase; J'ai également défini la position du flux sur 0. Rien ne semble aller. J'ai un sentiment que j'ai besoin de le changer à un autre type avant d'économiser à la session. p> Tout conseil ?? p> Merci! P> p>
3 Réponses :
httppostedfile code> se lit directement à partir du flux de demande HTTP.
Il ne convient pas à la réutilisation. P>
Vous ne pouvez pas stocker un httppostedfilebase code> dans la session. Cela n'a tout simplement pas de sens. Il contient un flux pointant vers le contenu du fichier à partir du flux de demande HTTP qui est déposé à la fin de la demande. Vous devez le sérialiser à un objet personnalisé avant de stocker en session. Par exemple:
public class MyFile
{
public string Name { get; set; }
public string ContentType { get; set; }
public byte[] Contents { get; set; }
}
parfait merci! La fonctionnalité que cela est destinée à être utilisée une fois par jour au mieux (actuellement, nous l'utilisons probablement une fois / une fois par semaine et le plus grand fichier CSV que nous avons utilisé pour compléter manuellement cette opération était de 55k. J'ai figuré en raison du minimal Utiliser, le stockage de la session serait plus efficace que d'écrire dans un fichier temporaire. Seriez-vous d'accord?
@Buekow, oui la taille du fichier semble acceptable pour stocker dans la session.
Pourriez-vous partager comment faire cela? Merci
Si vous utilisez httppostedfileBase, vous devez le cloner en premier, Vous pouvez maintenant lire le httppostedfilebase comme: p> après avoir utilisé Ceci vous pouvez toujours écrire dans votre code principal: p> et il l'enregistrera dans le fichier. p> p>
J'ai utilisé le code de ce git
Il vous suffit de ajouter ceci comme une classe dans votre espace de noms: