я 2 файлы, сохраненные на Лазурном хранилище больших двоичных объектов:не сможет правильно скачивать файлы с лазурной хранения и данные теряются слишком при загрузке файлов
- abc.txt
- Pqr.docx
Теперь я хочу создать zip-файлы из этих 2-х файлов и разрешить загрузку пользователя.
Я сохранил это в моем поле таблицы базы данных, как это:
Document
Abc,Pqr
Теперь, когда я нажимаю на загрузку затем я получаю файл, как показано ниже без данных в нем и расширение файла теряются слишком, как показано ниже:
Я хочу, чтобы пользователь, чтобы получить точный файл (.txt, .docx) в почтовом индексе, когда пользователь скачать почтовый файл.
Это мой код:
public ActionResult DownloadImagefilesAsZip()
{
string documentUrl = repossitory.GetDocumentsUrlbyId(id);//output:Abc.txt,Pqr.Docx
if (!string.IsNullOrEmpty(documentUrl))
{
string[] str = documentUrl.Split(',');
if (str.Length > 1)
{
using (ZipFile zip = new ZipFile())
{
int cnt = 0;
foreach (string t in str)
{
if (!string.IsNullOrEmpty(t))
{
Stream s = this.GetFileContent(t);
zip.AddEntry("File" + cnt, s);
}
cnt++;
}
zip.Save(outputStream);
outputStream.Position = 0;
return File(outputStream, "application/zip", "all.zip");
}
}
}
public Stream GetFileContent(string fileName)
{
CloudBlobContainer container = this.GetCloudBlobContainer();
CloudBlockBlob blockBlob = container.GetBlockBlobReference(fileName);
var stream = new MemoryStream();
blockBlob.DownloadToStream(stream);
return stream;
}
public CloudBlobContainer GetCloudBlobContainer()
{
CloudStorageAccount storageAccount = CloudStorageAccount.Parse(ConfigurationManager.AppSettings["StorageConnectionString"].ToString());
CloudBlobClient blobclient = storageAccount.CreateCloudBlobClient();
CloudBlobContainer blobcontainer = blobclient.GetContainerReference("Mystorage");
if (blobcontainer.CreateIfNotExists())
{
blobcontainer.SetPermissions(new BlobContainerPermissions { PublicAccess = BlobContainerPublicAccessType.Blob });
}
blobcontainer.SetPermissions(new BlobContainerPermissions { PublicAccess = BlobContainerPublicAccessType.Blob });
return blobcontainer;
}
Я хочу тот же файл будет загружен, если пользователь загрузить файл почтового индекса.
Может ли кто-нибудь помочь мне с этим?
Большое спасибо gaurav.Now, можете ли вы рассказать мне, как вернуть этот zip-файл из моего метода контроллера, потому что я плохо застрял в этом только. –
Я думаю, что код, который у вас есть, должен работать - 'return File (outputStream," application/zip "," all.zip ");'. Вы получаете там ошибку? –
Нужно ли это делать D: \\ output.zip? –