SORU
30 AĞUSTOS 2010, PAZARTESİ


Asp.Net herhangi bir tür dosya indirme FileResult kullanarak MVC?

FileResult kullanıcılar Asp.Net MVC benim uygulama dosyalarını indirmek için izin vermek için kullanacağım bunu bana önerdi, aldım. Ama her zaman bulamıyorum bu örnekler sadece resim dosyaları (içerik türünü image/jpeg belirterek) ile ilgisi var.

Ama eğer dosya türünü bilmem olabilir mi? Kullanıcılar çok fazla benim sitenin filearea herhangi bir dosya indirmek mümkün olmak istiyorum.

Kaldım okumak bir yöntem yapıyor bu a previous post kodu), bu gerçekten iyi çalışıyor, tek bir şey dışında: dosya o kadar geliyor Kaydet iletişim birleştirilmiş dosya yolu ile alt çizgi (folder_folder_file.ext). Ayrıca, insanlar BinaryContentResult bulduğumu bu özel bir sınıf yerine bir FileResult dönmek gerektiğini düşünüyor gibi görünüyor.

Herkes "" yapmanın yolu MVC gibi bir download? doğru biliyorum

EDİT: Cevap (aşağıda) var, ama eğer başka biri ile ilgilenen varsa tam çalışan kod gönderilmesi gerekiyor diye düşündüm.

public ActionResult Download(string filePath, string fileName)
{
    string fullName = Path.Combine(GetBaseDir(), filePath, fileName);

    byte[] fileBytes = GetFile(fullName);
    return File(
        fileBytes, System.Net.Mime.MediaTypeNames.Application.Octet, fileName);
}

byte[] GetFile(string s)
{
    System.IO.FileStream fs = System.IO.File.OpenRead(s);
    byte[] data = new byte[fs.Length];
    int br = fs.Read(data, 0, data.Length);
    if (br != fs.Length)
        throw new System.IO.IOException(s);
    return data;
}

CEVAP
31 AĞUSTOS 2010, Salı


Sadece octet-stream genel MİME türünü belirtebilirsiniz:

public FileResult Download()
{
    byte[] fileBytes = System.IO.File.ReadAllBytes(@"c:\folder\myfile.ext");
    string fileName = "myfile.ext";
    return File(fileBytes, System.Net.Mime.MediaTypeNames.Application.Octet, fileName);
}

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Blunty

    Blunty

    13 Mart 2006
  • dcigs

    dcigs

    9 EYLÜL 2006
  • fireflame65

    fireflame65

    27 Mart 2007