Le fichier créé par System.IO.File.Create
ne peut pas être téléchargé comme le fichier créé par HttpPostedFileBase.SaveAs
.Impossible de télécharger le fichier System.IO.File.Create? dans mvc 5 asp.net
Mon code:
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult SaveasMP4(HttpPostedFileBase file)
{
try
{
if (file != null && file.ContentLength > 0)
{
string extension = Path.GetExtension(file.FileName);
var path = Path.Combine(Server.MapPath("~/Data/"), file.FileName);
file.SaveAs(path);
if (!extension.Equals(".mp4"))
{
var ffMpeg = new NReco.VideoConverter.FFMpegConverter();
string tempFileName = path.Substring(0, path.LastIndexOf('.')) + ".mp4";
using (FileStream fileStream = System.IO.File.Create(Path.Combine(Server.MapPath("~/Data/"), tempFileName)))
{
ffMpeg.ConvertMedia(path, fileStream, Format.mp4);
}
if (System.IO.File.Exists(path))
{
System.IO.File.Delete(path);
}
}
}
}
catch (Exception e)
{
ModelState.AddModelError("", e.Message);
return View();
}
return RedirectToAction("Index");
}
si le fichier est mp4 peut être téléchargé à l'aide file.SaveAs (chemin). Mais si le fichier est dans un autre format, il convertit en mp4 avec succès en utilisant NReco.VideoConverter et ne peut pas télécharger parce qu'il crée par System.IO.File.Create (tempFileName). Juste je peux télécharger en utilisant ftp.
Le problème est-il lié à l'autorisation d'accès au fichier? Si c'est ce que je devrais faire dans l'autorisation d'accès au fichier?
Que sont 'tempFileName' et' filess'? –
Eh bien, que se passe-t-il en ce moment? Y a-t-il une exception? Pourquoi n'utilisez-vous pas 'fileStream'? –
J'ai déjà utilisé FileStream mais je ne peux pas travailler. et quand j'essaie de le télécharger, il n'y a pas de fichier. En fait, le fichier dans le service et je peux télécharger par ftp. –