예제 #1
0
        public static async Task <ActionResult> Download(string key)
        {
            var folder = FileUploadService.GetFolder(key);

            if (!folder.Exists())
            {
                return(CreateError("The folder does not exist for key: " + key));
            }

            var files = folder.GetFiles();

            if (files.None())
            {
                return(CreateError("There is no file for key: " + key));
            }
            if (files.HasMany())
            {
                return(CreateError("There are multiple files for the key: " + key));
            }

            var file = files.Single();

            return(new FileContentResult(await file.ReadAllBytesAsync(), "application/octet-stream")
            {
                FileDownloadName = file.Name
            });
        }
예제 #2
0
        public static async Task <object> CreateDownloadAction(byte[] data, string filename)
        {
            var key    = Guid.NewGuid().ToString();
            var folder = FileUploadService.GetFolder(key).EnsureExists();
            await folder.GetFile(filename).WriteAllBytes(data);

            var url = "/temp-file/" + key;

            Context.Http.Perform(c => url = c.GetUrlHelper().Content("~" + url));

            return(new { Download = url });
        }
예제 #3
0
        public static async Task <object> CreateDownloadAction(byte[] data, string filename)
        {
            var key    = Guid.NewGuid().ToString();
            var folder = FileUploadService.GetFolder(key).EnsureExists();
            await folder.GetFile(filename).WriteAllBytesAsync(data);

            var url = "/temp-file/" + key;

            var http = Context.Current.Http();

            if (http != null)
            {
                url = http?.GetUrlHelper().Content("~" + url);
            }

            return(new { Download = url });
        }