/// <summary> /// Deletes a download /// </summary> /// <param name="download">Download</param> public virtual void DeleteDownload(Download download) { if (download == null) throw new ArgumentNullException("download"); _downloadRepository.Delete(download); }
/// <summary> /// Inserts a download /// </summary> /// <param name="download">Download</param> public virtual void InsertDownload(Download download) { if (download == null) throw new ArgumentNullException("download"); _downloadRepository.Insert(download); }
public ActionResult SaveDownloadUrl(string downloadUrl) { //insert var download = new Download { DownloadGuid = Guid.NewGuid(), UseDownloadUrl = true, DownloadUrl = downloadUrl, IsNew = true }; _downloadService.InsertDownload(download); return Json(new { downloadId = download.Id }, JsonRequestBehavior.AllowGet); }
public ActionResult AsyncUpload() { //we process it distinct ways based on a browser //find more info here http://stackoverflow.com/questions/4884920/mvc3-valums-ajax-file-upload Stream stream = null; var fileName = ""; var contentType = ""; if (String.IsNullOrEmpty(Request["qqfile"])) { // IE HttpPostedFileBase httpPostedFile = Request.Files[0]; if (httpPostedFile == null) throw new ArgumentException("No file uploaded"); stream = httpPostedFile.InputStream; fileName = Path.GetFileName(httpPostedFile.FileName); contentType = httpPostedFile.ContentType; } else { //Webkit, Mozilla stream = Request.InputStream; fileName = Request["qqfile"]; } var fileBinary = new byte[stream.Length]; stream.Read(fileBinary, 0, fileBinary.Length); var fileExtension = Path.GetExtension(fileName); if (!String.IsNullOrEmpty(fileExtension)) fileExtension = fileExtension.ToLowerInvariant(); var download = new Download { DownloadGuid = Guid.NewGuid(), UseDownloadUrl = false, DownloadUrl = "", DownloadBinary = fileBinary, ContentType = contentType, //we store filename without extension for downloads FileName = Path.GetFileNameWithoutExtension(fileName), Extension = fileExtension, IsNew = true }; _downloadService.InsertDownload(download); //when returning JSON the mime-type must be set to text/plain //otherwise some browsers will pop-up a "Save As" dialog. return Json(new { success = true, downloadId = download.Id, downloadUrl = Url.Action("DownloadFile", new { downloadGuid= download.DownloadGuid }) }, "text/plain"); }