public void ProcessRequest(HttpContext context) { HttpRequest Request = context.Request; HttpResponse Response = context.Response; Response.ContentType = "text/plain"; string filename = Request["fileName"]; string retSn = string.Empty; string dot = ""; if (!string.IsNullOrEmpty(filename)) { string fileType = Path.GetExtension(filename).ToLower(); if (!string.IsNullOrEmpty(fileType)) { if (fileType.IndexOf(".") > -1) { fileType = fileType.Substring(1); dot = "."; } } retSn = new Resource().GetSN(ResourceTypeFactory.getResourceType(fileType).ResourceSNPrefix); retSn = retSn + dot + fileType + ":" + filename; } context.Session["sn"] = retSn; Response.Write(retSn); //返回带有扩展名的新文件 }
private void uploadSourceFile(HttpPostedFile hpf) { string filename = hpf.FileName; string fileType = Path.GetExtension(filename); string savePath = string.Empty; //yangguang //if (fileType.IndexOf(".") > -1) //{ // savePath = ResourceTypeFactory.getResourceType(fileType.Substring(1)).SourcePath; //} //else //{ // savePath = ResourceTypeFactory.getResourceType(fileType).SourcePath; //} if (fileType.IndexOf(".") > -1) { savePath = ResourceTypeFactory.getResourceType(fileType.Substring(1)).GetSourcePath(); } else { savePath = ResourceTypeFactory.getResourceType(fileType).GetSourcePath(); } savePath = Path.Combine(savePath, CurrentUser.UserLoginName); string resourceseq = Path.GetFileNameWithoutExtension(savedFileName); string fileFullPath = Path.Combine(savePath, resourceseq + fileType); try { if (!Directory.Exists(savePath)) { Directory.CreateDirectory(savePath); } //Console.WriteLine("Pre Content Length-----" + hpf.ContentLength); //Console.WriteLine("Pre Current-----" + hpf.InputStream.Seek(0, SeekOrigin.Current)); //Console.WriteLine("Pre position-----" + hpf.InputStream.Position); //Console.WriteLine("Pre Length-----" + hpf.InputStream.Length); hpf.SaveAs(fileFullPath); //Console.WriteLine("Re Content Length-----" + hpf.ContentLength); //Console.WriteLine("Re Current-----" + hpf.InputStream.Seek(0, SeekOrigin.Current)); //Console.WriteLine("Re Position -----" + hpf.InputStream.Position); //Console.WriteLine("Re Length-----" + hpf.InputStream.Length); //Console.WriteLine("End -----" + hpf.InputStream.Seek(0, SeekOrigin.End)); //Console.WriteLine("End postion-----" + hpf.InputStream.Position); } catch (Exception ep) { LogWriter.WriteExceptionLog(ep, true); } }
protected string GetImgUrl(string ItemSerialNum, string ImageType, string folder, string resourceType) { IResourceType obj = ResourceTypeFactory.getResourceTypeByString(resourceType); if (resourceType.ToLower().Equals("image")) { return(UIBiz.CommonInfo.GetImageUrl(170, folder, ItemSerialNum, ImageType)); } else { return(obj.GetPreviewPathRead(folder, ItemSerialNum + ".jpg", "image")); } return(obj.GetPreviewPathRead(folder, ItemSerialNum, ImageType)); }
//protected string GetImgUrl(string ItemSerialNum, string ImageType, string folder) //{ // return UIBiz.CommonInfo.GetImageUrl(170, folder, ItemSerialNum, ImageType); //} protected string GetImgUrl(string ItemSerialNum, string serverFileName, string folder, string resourceType) { IResourceType obj = ResourceTypeFactory.getResourceTypeByString(resourceType); if (resourceType.ToLower().Equals("image")) { return(obj.GetPreviewPathRead(folder, serverFileName, "170")); } else if (resourceType.ToLower().Equals("video")) { return(obj.GetPreviewPathRead(folder, ItemSerialNum + ".jpg", "image")); } return(""); //return obj.GetPreviewPathRead(folder, ItemSerialNum, ImageType); }
protected void btnUpload_ServerClick(object sender, EventArgs e) { //是否有版权的资源 int hasCopyRight = 0; try { hasCopyRight = Convert.ToInt32(this.rblCopyright.SelectedValue); } catch (Exception ex) { } #region 验证日期部分 //if (this.shotDate1.Text.Trim() == string.Empty) //{ // this.ShowMessage(this, "请选择时间"); // return; //} //else //{ // if (Convert.ToDateTime(this.shotDate1.Text) > DateTime.Now) // { // this.ShowMessage(this, "拍摄时间应比现在早"); // return; // } //} //验证日期 DateTime sDate = new DateTime(); DateTime eDate = new DateTime(); if (this.startDate.Text != "") { //有效开始日期就不做验证了,只要结束日期比现在晚就可以了。 sDate = Convert.ToDateTime(this.startDate.Text); //if (sDate <= DateTime.Now) //{ // this.ShowMessage(this, "有效开始日期应比现在日期晚"); // return; //} } else { sDate = Convert.ToDateTime("1900-01-01"); } if (this.endDate.Text != "") { eDate = Convert.ToDateTime(this.endDate.Text); if (sDate == Convert.ToDateTime("1900-01-01") && eDate < DateTime.Now) { this.ShowMessage(this, "有效结束日期应至少比现在日期晚"); return; } else if (eDate < sDate) { this.ShowMessage(this, "有效结束日期应比有效开始日期晚"); return; } } else { eDate = Convert.ToDateTime("1900-01-01"); } #endregion #region 验证是否选择目录节点 ////根节点 //TreeNode parentNode = catalogTree.RootNode; ////获取checked的节点List //ArrayList nodeList = new ArrayList(); //this.catalogTree.ArrCheckbox(nodeList, parentNode); //ArrayList catalogIds = new ArrayList(nodeList.Count); //foreach (TreeNode node in nodeList) //{ // catalogIds.Add(new Guid(node.Value)); //} //if (catalogIds.Count == 0) //{ // this.ShowMessage(this, "没有选择分类,上传失败!"); // return; //} string catIds = this.hidCatIds.Value.Trim().Trim(new char[] { ',' }); string[] arrCatIds = catIds.Split(",".ToCharArray()); if (arrCatIds.Length == 0) { this.ShowMessage(this, "没有选择分类,上传失败!"); return; } ArrayList catalogIds = new ArrayList(arrCatIds.Length); foreach (string _s in arrCatIds) { catalogIds.Add(new Guid(_s)); } #endregion string fileName = ""; //原始文件名 if (!string.IsNullOrEmpty(Request["selectedFile"])) { fileName = Request["selectedFile"].ToString().ToLower(); } else { return; } string uploadFileName = ""; //上传以后重新分配的文件名 prefix+yymmdd+00001.extention if (!string.IsNullOrEmpty(Request["uploadFileName"])) { uploadFileName = Request["uploadFileName"].ToString(); } else { return; } string[] arrFiles = uploadFileName.Split(','); foreach (string singleFiles in arrFiles) { if (!singleFiles.Contains(":")) { continue; } string[] _arr = singleFiles.Split(':'); string strClientFileName = _arr[1]; string strServerFileName = _arr[0]; fileName = strClientFileName; uploadFileName = strServerFileName; /** start **/ Resource objResource = new Resource(); ResourceEntity model = new ResourceEntity(); //管理员上传直接审核通过 if (IsSuperAdmin) { model.Status = (int)ResourceEntity.ResourceStatus.IsPass; } else { model.Status = (int)ResourceEntity.ResourceStatus.NewUpload; } //改成所有人上传的都可以直接通过 , 到时直接注释下面一句话就可以 model.Status = (int)ResourceEntity.ResourceStatus.IsPass; model.Status = 0; if (this.txt_Caption.Value.Trim().Length > 0) { model.Caption = this.txt_Caption.Value; } else { model.Caption = Path.GetFileNameWithoutExtension(strClientFileName); } model.Description = this.description.Value; model.EndDate = eDate; model.FileName = fileName; model.FolderName = CurrentUser.UserLoginName; if (uploadFileName.ToLower().IndexOf(".cr2") != -1 || uploadFileName.ToLower().IndexOf(".nef") != -1 || uploadFileName.ToLower().IndexOf(".psd") != -1) { model.ServerFileName = uploadFileName.Replace("cr2", "jpg").Replace("nef", "jpg").Replace("psd", "jpg"); } else { model.ServerFileName = uploadFileName; } model.GroupId = CurrentUser.UserGroupId; model.ItemId = Guid.NewGuid(); model.ItemSerialNum = Path.GetFileNameWithoutExtension(uploadFileName); //model.Keyword = this.keyWord.Value; model.Keyword = this.txtKeyWords.Text.Trim().Trim(",".ToCharArray()); //model.shotDate = Convert.ToDateTime(this.shotDate1.Text); model.StartDate = sDate; model.uploadDate = DateTime.Now; model.userId = CurrentUser.UserId; model.updateDate = DateTime.Now; model.Author = this.txt_Author.Value.Trim(); //取得文件的扩展名,不包括.号 string fileExtName = string.Empty; fileExtName = Path.GetExtension(fileName); if (fileExtName.IndexOf(".") > -1) { fileExtName = fileExtName.Substring(1); } model.ResourceType = ResourceTypeFactory.getResourceType(fileExtName).ResourceType; model.FileSize = Resource.GetResourceFileSize(uploadFileName, model.FolderName, fileExtName, ""); model.HasCopyright = hasCopyRight; model.shotDate = DateTime.Now; DateTime shotDateTime = Resource.GetResourceShotDateTime(uploadFileName, model.FolderName, model.ResourceType, ""); if (shotDateTime != DateTime.MinValue) { model.shotDate = shotDateTime; } objResource.Add(model); objResource.CreateRelationshipResourceAndCatalog(model.ItemId, (Guid[])catalogIds.ToArray(typeof(Guid))); //同时更新索引 string[] SNs = new string[] { model.ItemSerialNum }; ResourceIndex.updateIndex(SNs); } /** end **/ #region 注释部分 //VideoStorageClass vsc = new VideoStorageClass(); //VideoStorage v = new VideoStorage(); //v.Caption = this.txt_Caption.Value; //v.Description = this.description.Value; //v.EndDate = eDate; //v.FileName = fileName; //v.FolderName = CurrentUser.UserLoginName; //v.ServerFileName = uploadFileName; //v.GroupId = CurrentUser.UserGroupId; //v.ItemId = Guid.NewGuid(); //v.ItemSerialNum = Path.GetFileNameWithoutExtension(uploadFileName); //v.Keyword = this.keyWord.Value; //v.shotDate = Convert.ToDateTime(this.shotDate.Value); //v.StartDate = sDate; //v.uploadDate = DateTime.Now; //v.userId = CurrentUser.UserId; //v.updateDate = DateTime.Now; ////存储数据库记录 //// img.ItemSerialNum = ImageStorageClass.AddImageStorage(img); //if (!vsc.Add(v)) //{ // this.ShowMessage(this, "上传失败"); // return; //} //vsc.CreateRelationshipVideoAndCatalog(v.ItemId, (Guid[])catalogIds.ToArray(typeof(Guid))); #endregion //this.shotDate1.Text = ""; this.keyWord.Value = ""; this.description.Value = ""; this.txt_Caption.Value = ""; this.startDate.Text = ""; this.endDate.Text = ""; initCalendar(); //this.ShowMessage(this, "上传成功"); //Page.ClientScript.RegisterStartupScript(this.GetType(), "", "<script>myUploadSuccess2()</script>"); Page.ClientScript.RegisterClientScriptBlock(this.GetType(), "", "<script>myUploadSuccess2()</script>"); }
private void uploadResource() { HttpPostedFile objFile = Request.Files["Filedata"]; if (objFile != null) { string filename = objFile.FileName; string fileType = Path.GetExtension(filename).ToLower(); if (fileType.IndexOf(".") == -1) { fileType = "." + fileType; } //string resourceType = new Resource().GetResourceTypeByFileExtention(fileType); string resourceType = ResourceTypeFactory.getResourceType(fileType.Substring(1)).ResourceType; if (resourceType.Equals("image")) { if (!this.CheckImageType(fileType) || fileType == "ai") { uploadFile(); } else { if (fileType == ".cr2" || fileType == ".nef") { string path = Server.MapPath(@"\temp\" + filename); string name = filename.Replace(Path.GetExtension(filename), string.Empty); objFile.SaveAs(path); TransformMode(path); Thread.Sleep(5000); SaveImage(name, Path.GetExtension(filename)); } else if (fileType == ".psd") { string name = Guid.NewGuid().ToString(); string path = Server.MapPath(@"\temp\" + name + fileType); objFile.SaveAs(path); TransformPSD(path, name); Thread.Sleep(15000); SaveImagePSD(name, Path.GetExtension(filename)); } else { SaveImage(); } } } else if (resourceType.Equals("video")) { uploadVideo(objFile); } else if (resourceType.Equals("document")) { uploadDocumentFile(objFile); } else if (resourceType.Equals("other")) { uploadOtherFile(objFile); } } }
/// <summary> /// 进行请求处理,返回图像或数据 /// </summary> private void ProcessRequest(string fileName, string subfolder, string fileType, string userName, string usage, string endUser, string resourceType, string attType) { //string strResourceRootPath = UIBiz.CommonInfo.ResourceRootPath; strUserName = CurrentUser.UserLoginName; string strFullFilePath = string.Empty; IResourceType rt = null; if (string.IsNullOrEmpty(subfolder)) { rt = ResourceTypeFactory.getResourceTypeByString(resourceType.ToLower()); //yangguang //strFullFilePath = Path.Combine(rt.SourcePath, userName); //strFullFilePath = Path.Combine(strFullFilePath, fileName + fileType); strFullFilePath = rt.GetSourcePath(userName, fileName + fileType); strFile = resourceType.ToLower() + "_" + strFullFilePath; } else { if (resourceType.ToLower().Equals("image")) { rt = ResourceTypeFactory.getResourceTypeByString(resourceType.ToLower()); //yangguang //strFullFilePath = Path.Combine(rt.SourcePath, userName); //strFullFilePath = Path.Combine(strFullFilePath, subfolder + "/" + fileName + fileType); strFullFilePath = rt.GetSourcePath(userName, subfolder + "/" + fileName + fileType); strFile = resourceType.ToLower() + "_" + strFullFilePath; } else if (resourceType.ToLower().Equals("video")) { rt = ResourceTypeFactory.getResourceTypeByString(resourceType.ToLower()); //yangguang //strFullFilePath = Path.Combine(rt.SourcePath, userName); //strFullFilePath = Path.Combine(strFullFilePath, subfolder + "/" + fileName + fileType); strFullFilePath = rt.GetSourcePath(userName, subfolder + "/" + fileName + fileType); strFile = resourceType.ToLower() + "_" + strFullFilePath; } else if (resourceType.ToLower().Equals("other")) { rt = ResourceTypeFactory.getResourceTypeByString(resourceType.ToLower()); //yangguang //strFullFilePath = Path.Combine(rt.SourcePath, userName); //strFullFilePath = Path.Combine(strFullFilePath, subfolder + "/" + fileName + fileType); strFullFilePath = rt.GetSourcePath(userName, subfolder + "/" + fileName + fileType); strFile = resourceType.ToLower() + "_" + strFullFilePath; } } #region //string resUrl = string.Empty; //resUrl = UIBiz.CommonInfo.FileDownPath + "/" + userName + "{0}" + fileName + fileType; //if (resourceType.ToLower().Equals("video")) //{ // strFullFilePath = Path.Combine(Path.Combine(Path.Combine(strResourceRootPath, "video"), "Source"), userName); // if (attType.ToLower().Equals("attachment")) // { // resUrl = UIBiz.CommonInfo.FileDownPath + "/../video/source/" + userName + "{0}/attachments/" + fileName + fileType; // strFullFilePath = Path.Combine(strFullFilePath, UIBiz.CommonInfo.AttachFolder); // } //} //else if (resourceType.ToLower().Equals("image")) //{ // //strFullFilePath = Path.Combine(Path.Combine(Path.Combine(strResourceRootPath,"images"), "Source") , userName); //91的结构 // strFullFilePath = Path.Combine(UIBiz.CommonInfo.ImageRootPath, userName); // if (attType.ToLower().Equals("attachment")) // { // resUrl = UIBiz.CommonInfo.FileDownPath + "/../video/source/" + userName + "{0}/attachments/" + fileName + fileType; // strFullFilePath = Path.Combine(strFullFilePath, UIBiz.CommonInfo.AttachFolder); // } //} //else if (resourceType.ToLower().Equals("document")) //{ // strFullFilePath = Path.Combine(Path.Combine(strResourceRootPath, "document"), userName); //} //else if (resourceType.ToLower().Equals("other")) //{ // strFullFilePath = Path.Combine(Path.Combine(strResourceRootPath, "other"), userName); //} #endregion if (File.Exists(strFullFilePath)) { WriteLog wl = new WriteLog(this.WriteLogDB); wl.BeginInvoke(fileName, fileType, strUserName, usage, endUser, userName, true, resourceType, null, null); System.IO.Stream iStream = null; try { byte[] buffer = new Byte[10000]; int length; long dataToRead; string filepath = strFullFilePath; string filename = System.IO.Path.GetFileName(filepath); iStream = new System.IO.FileStream(strFullFilePath, System.IO.FileMode.Open, System.IO.FileAccess.Read, System.IO.FileShare.Read); dataToRead = iStream.Length; Response.Buffer = false; Response.AddHeader("Connection", "Keep-Alive"); Response.ContentType = "application/octet-stream"; Response.AddHeader("Content-Disposition", "attachment; filename=" + encodeChineseFileName(filename)); Response.AddHeader("Content-Length", iStream.Length.ToString()); while (dataToRead > 0) { if (Response.IsClientConnected) { length = iStream.Read(buffer, 0, 10000); Response.OutputStream.Write(buffer, 0, length); Response.Flush(); buffer = new Byte[10000]; dataToRead = dataToRead - length; } else { dataToRead = -1; } } } catch (Exception ex) { // Trap the error, if any. Response.Write("Error : " + ex.Message); } finally { if (iStream != null) { //Close the file. iStream.Close(); } } #region //Response.WriteFile(strFullFilePath); //Response.TransmitFile(strFullFilePath); //Response.Clear(); //Response.Buffer = true; //Response.ContentType = "application/octet-stream"; //Response.AddHeader("Content-Disposition", "attachment;filename=" + encodeChineseFileName(fileName + fileType)); //Response.BinaryWrite(rawImg); //Response.End(); #endregion } #region //if (!string.IsNullOrEmpty(subfolder)) //{ // resUrl = string.Format(resUrl, "/" + subfolder + "/"); //} //else //{ // resUrl = string.Format(resUrl, "/"); //} //if (resUrl != null && resUrl != "") //{ // // wl.BeginInvoke(fileName, fileType, CurrentUser.UserLoginName, usage, endUser, userName, true , resourceType, null, null); // //Response.Redirect(resUrl, true); // //这里不采用 response.binarywrite方法往客户端发送数据,主要是大文件引起的问题,而且也没有这个必要 // //by ciqq 2010-4-1 //} #endregion }
private string SaveImage() { //HttpPostedFile f = Request.Files["Filedata"]; HttpPostedFile f = this.fuImage.PostedFile; string filename = f.FileName; string filetype = Path.GetExtension(filename).ToLower(); ImageType obj = new ImageType(); string savePath = obj.GetSourcePath(obj.SourcePaths); savePath = Path.Combine(savePath, CurrentUser.UserLoginName); //string retSn = new Resource().GetSN(ResourceTypeFactory.getResourceType(filetype).ResourceSNPrefix) + filetype; string resourceseq = new Resource().GetSN(ResourceTypeFactory.getResourceType(filetype.Substring(1)).ResourceSNPrefix); string fileFullPath = Path.Combine(savePath, resourceseq + filetype); bool slImage; try { if (!Directory.Exists(savePath)) { Directory.CreateDirectory(savePath); } //保存原图 f.SaveAs(fileFullPath); string SlImageRootPath; SlImageRootPath = Path.Combine(obj.PreviewPath_170, CurrentUser.UserLoginName); if (!Directory.Exists(SlImageRootPath)) { Directory.CreateDirectory(SlImageRootPath); } ArrayList sarray = new ArrayList(); sarray.Add(fileFullPath); ArrayList aarray = new ArrayList(); aarray.Add(Path.Combine(SlImageRootPath, resourceseq + filetype)); ImageController.ToZipImage(sarray, aarray, 170); SlImageRootPath = Path.Combine(obj.PreviewPath_400, CurrentUser.UserLoginName); if (!Directory.Exists(SlImageRootPath)) { Directory.CreateDirectory(SlImageRootPath); } sarray = new ArrayList(); sarray.Add(fileFullPath); aarray = new ArrayList(); aarray.Add(Path.Combine(SlImageRootPath, resourceseq + filetype)); ImageController.ToZipImage(sarray, aarray, 400); //将原图的长x宽保存起来 System.Drawing.Image m_Image = System.Drawing.Image.FromFile(fileFullPath); Int32 height = Convert.ToInt32(m_Image.Height.ToString()); Int32 width = Convert.ToInt32(m_Image.Width.ToString()); string hvsp = string.Empty; if (height > width) { hvsp = "v"; } else if (width > height) { hvsp = "h"; } else { hvsp = "s"; } Dictionary <string, string> dct = new Dictionary <string, string>(); dct.Add("Width", width.ToString()); dct.Add("Height", height.ToString()); dct.Add("Hvsp", hvsp); List <QJVRMS.Business.ResourceWS.DictionaryEntry> lst = new List <QJVRMS.Business.ResourceWS.DictionaryEntry>(); foreach (string key in dct.Keys) { QJVRMS.Business.ResourceWS.DictionaryEntry de = new QJVRMS.Business.ResourceWS.DictionaryEntry(); de.Key = key; de.Value = dct[key]; lst.Add(de); } QJVRMS.Business.ResourceWS.DictionaryEntry[] result = lst.ToArray(); Resource r = new Resource(); r.insertResourceAttributes(resourceseq, result); //Response.Write(resourceseq + filetype + ":" + f.FileName); return(resourceseq + filetype); } catch (Exception e1) { Response.Write("保存图片出现错误" + e1.Message); LogWriter.WriteExceptionLog(e1, true); } finally { } return(string.Empty); }
private string newUploadImage() { //HttpPostedFile objFile = Request.Files["Filedata"]; HttpPostedFile objFile = this.fuImage.PostedFile; if (objFile != null) { string filename = objFile.FileName; string fileType = Path.GetExtension(filename).ToLower(); if (fileType.IndexOf(".") == -1) { fileType = "." + fileType; } //string resourceType = new Resource().GetResourceTypeByFileExtention(fileType); string resourceType = ResourceTypeFactory.getResourceType(fileType.Substring(1)).ResourceType; if (resourceType.Equals("image")) { string strClientFileName = filename; string strServerFileName = SaveImage(); if (string.IsNullOrEmpty(strServerFileName)) { ShowMessage("发生错误"); return(string.Empty); } /** start **/ Resource objResource = new Resource(); ResourceEntity model = new ResourceEntity(); //管理员上传直接审核通过 if (IsSuperAdmin) { model.Status = (int)ResourceEntity.ResourceStatus.IsPass; } else { model.Status = (int)ResourceEntity.ResourceStatus.NewUpload; } if (this.txtTitle.Text.Trim().Length > 0) { model.Caption = this.txtTitle.Text.Trim(); } else { model.Caption = Path.GetFileNameWithoutExtension(strClientFileName); } model.Description = this.txtRemark.Text.Trim(); model.EndDate = DateTime.Now.AddYears(10); model.FileName = strClientFileName; model.FolderName = CurrentUser.UserLoginName; model.ServerFileName = strServerFileName; model.GroupId = CurrentUser.UserGroupId; model.ItemId = Guid.NewGuid(); model.ItemSerialNum = Path.GetFileNameWithoutExtension(strServerFileName); //model.Keyword = this.keyWord.Value; model.Keyword = this.txtTitle.Text.Trim(); //model.shotDate = Convert.ToDateTime(this.shotDate1.Text); model.StartDate = Convert.ToDateTime("1900-01-01"); model.uploadDate = DateTime.Now; model.userId = CurrentUser.UserId; model.updateDate = DateTime.Now; model.Author = ""; //取得文件的扩展名,不包括.号 string fileExtName = string.Empty; fileExtName = Path.GetExtension(filename); if (fileExtName.IndexOf(".") > -1) { fileExtName = fileExtName.Substring(1); } model.ResourceType = ResourceTypeFactory.getResourceType(fileExtName).ResourceType; model.FileSize = Resource.GetResourceFileSize(strServerFileName, model.FolderName, fileExtName, ""); model.HasCopyright = 0; model.shotDate = DateTime.Now; objResource.Add(model); //objResource.CreateRelationshipResourceAndCatalog(model.ItemId, (Guid[])catalogIds.ToArray(typeof(Guid))); //return strServerFileName; return(model.ItemId.ToString()); } } return(string.Empty); }
protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { string ids = Request.QueryString["ids"]; if (string.IsNullOrEmpty(ids)) { return; } ids = ids.TrimEnd(";".ToCharArray()); string[] arrIds = ids.Split(";".ToCharArray()); ImageType objImageType = new ImageType(); IResourceType rt = null; string physicalPath = string.Empty; List <string> zipFileList = new List <string>(); foreach (string id in arrIds) { ResourceEntity re = null; Resource r = new Resource(); re = r.GetResourceInfoByItemId(id); //physicalPath = objImageType.GetSourcePath(re.FolderName, re.ServerFileName); rt = ResourceTypeFactory.getResourceTypeByString(re.ResourceType); physicalPath = rt.GetSourcePath(re.FolderName, re.ServerFileName); if (!string.IsNullOrEmpty(physicalPath)) { zipFileList.Add(physicalPath); } //记录下载日志 Resource.Production_Hires_Down_Log(re.ItemSerialNum, Path.GetExtension(re.ServerFileName), CurrentUser.UserName, "", "", re.FolderName, false, re.ResourceType); } Response.ContentType = "application/octet-stream"; Response.AppendHeader("content-disposition", "attachment; filename=\"Download.zip\""); Response.CacheControl = "Private"; Response.Cache.SetExpires(DateTime.Now.AddMinutes(3)); byte[] buffer = new byte[4096]; ZipOutputStream zipOutputStream = new ZipOutputStream(Response.OutputStream); zipOutputStream.SetLevel(3); foreach (string fileName in zipFileList) { Stream fs = File.OpenRead(fileName); // or any suitable inputstream ZipEntry entry = new ZipEntry(ZipEntry.CleanName(Path.GetFileName(fileName))); entry.Size = fs.Length; zipOutputStream.PutNextEntry(entry); int count = fs.Read(buffer, 0, buffer.Length); while (count > 0) { zipOutputStream.Write(buffer, 0, count); count = fs.Read(buffer, 0, buffer.Length); if (!Response.IsClientConnected) { break; } Response.Flush(); } fs.Close(); } zipOutputStream.Close(); Response.Flush(); Response.End(); } }
protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { string lightboxId = Request.QueryString["id"]; if (!string.IsNullOrEmpty(lightboxId)) { //得到该收藏夹下的图片 Resource obj = new Resource(); DataSet ds = obj.GetResourcesByLightBoxID(new Guid(lightboxId), int.MaxValue, 1); if (ds.Tables[0].Rows.Count > 0) { ImageType objImageType = new ImageType(); IResourceType rt = null; string physicalPath = string.Empty; List <string> zipFileList = new List <string>(); foreach (DataRow dr in ds.Tables[0].Rows) { rt = ResourceTypeFactory.getResourceTypeByString(dr["ResourceType"].ToString().ToLower()); physicalPath = rt.GetSourcePath(dr["ServerFolderName"].ToString(), dr["ServerFileName"].ToString()); //physicalPath = objImageType.GetSourcePath(dr["ServerFolderName"].ToString(), dr["ServerFileName"].ToString()); if (!string.IsNullOrEmpty(physicalPath)) { zipFileList.Add(physicalPath); } } Response.ContentType = "application/octet-stream"; Response.AppendHeader("content-disposition", "attachment; filename=\"Download.zip\""); Response.CacheControl = "Private"; Response.Cache.SetExpires(DateTime.Now.AddMinutes(3)); byte[] buffer = new byte[4096]; ZipOutputStream zipOutputStream = new ZipOutputStream(Response.OutputStream); zipOutputStream.SetLevel(3); foreach (string fileName in zipFileList) { Stream fs = File.OpenRead(fileName); // or any suitable inputstream ZipEntry entry = new ZipEntry(ZipEntry.CleanName(Path.GetFileName(fileName))); entry.Size = fs.Length; zipOutputStream.PutNextEntry(entry); int count = fs.Read(buffer, 0, buffer.Length); while (count > 0) { zipOutputStream.Write(buffer, 0, count); count = fs.Read(buffer, 0, buffer.Length); if (!Response.IsClientConnected) { break; } Response.Flush(); } fs.Close(); } zipOutputStream.Close(); Response.Flush(); Response.End(); } } } }