Comment créer une instance de HttpPostedFileBase(ou son type héréditaire)
Actuellement, j'ai un byte[]
qui contient toutes les données d'un fichier d'image, juste envie de construire une instance de HttpPostedFileBase
afin que je puisse utiliser une méthode existante, au lieu de créer une nouvelle surcharge d'un.
public ActionResult Save(HttpPostedFileBase file)
public ActionResult Save(byte[] data)
{
//Hope I can construct an instance of HttpPostedFileBase here and then
return Save(file);
//instead of writing a lot of similar codes
}
- avez-vous la réponse de travailler pour l'analyse du fichier stocké dans le byte[] ? Mine conserve la disposition du contenu, etc.
Vous devez vous connecter pour publier un commentaire.
Créer une classe dérivée comme suit:
Maintenant, vous pouvez passer instance de cette classe où HttpPostedFileBase est prévu.
string filePath = Path.GetFullPath("C:\\images.rar"); FileStream fileStream = new FileStream(filePath, FileMode.Open); MemoryFile fileImage = new MemoryFile(fileStream, "application/x-rar-compressed", "images.rar");
fileStream
lorsque vous avez terminé sinon, vous quittez le fichier ouvert en permanence (et inaccessible).Vous ne pouvez pas créer manuellement une instance de
HttpPostedFileBase
ou les classes dérivées (HttpPostedFile
). Cette classe est supposé être instancié par le cadre. Pourquoi ne pas vous débarrasser de la deuxième action de contrôleur qui prend un tableau d'octets? Il n'est pas nécessaire. Le classeur de modèles par défaut fonctionnent bien avec la prise d'unHttpPostedFileBase
.byte[]
? C'est semble très bizarre. Ce protocole est utilisé?