protected void btnOL_Click(object sender, EventArgs e) { //RepeaterFiles.DataSource = UCDataList;//MossObject.Xml2FuJianList(txtFJXML.Value); RepeaterFiles.DataSource = MossObject.Xml2FuJianList(txtFJXML.Value); RepeaterFiles.DataBind(); RunScript(); }
/// <summary> /// 删除附件 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> protected void btnDel_Click(object sender, EventArgs e) { try { String URL = (sender as LinkButton).CommandName; if (UCIsAgain == "1")// 二次分发不刷新实体和不真正删除附件 { Remove(URL); } else { int ret = MossObject.Del(UCProcessType, URL); if (ret > 0) { Remove(URL); //刷新实体 MossObject mossObject = new MossObject(); mossObject.SaveNewList(UCProcessType, UCWorkItemID, UCDataList, UCTBID); } } RepeaterFiles.DataSource = UCDataList; RepeaterFiles.DataBind(); RunScript(); } catch (Exception ex) { JScript.ShowMsgBox(Page, MsgType.VbExclamation, ex.Message); } }
/// <summary> /// 回传值 /// </summary> private void RunScript() { String script = ""; script += base.GetJSscriptXMLValue(UCControlID, MossObject.FuJianList2Xml(UCDataList)); //组成一整条js后运行 ClientScriptM.ResponseScript(this, script); }
public bool Upload() { OA_DocumentService api = MossObject.GetMOSSAPI(); string[] saveUrl = api.Upload(GetUploadFileInfo_new(), StreamToBytes(UploadFilesStream), this.DocumentEntry, false); //service上传 UploadFullName = saveUrl[0]; //全路径 UploadURL = saveUrl[1]; //文件夹+文件名 return(true); }
/// <summary> /// 将附件下载为 字节流 /// </summary> /// <param name="UCProcessType"></param> /// <param name="URL"></param> /// <returns></returns> public static Byte[] DownLoad(string UCProcessType, string URL) { Byte[] fileByte = null; if (OAConfig.GetConfig("MOSS认证", "是否启用DLL") == "1") { fileByte = DocumentManager.Download(MossObject.GetDownLoadFileInfo(UCProcessType, URL)); } else { fileByte = MossObject.GetMOSSAPI().Download(MossObject.GetDownLoadFileInfo(UCProcessType, URL)); } return(fileByte); }
/// <summary> /// MOSS附件大小 /// </summary> /// <param name="UCProcessType"></param> /// <param name="URL"></param> /// <returns></returns> public static long FileLength(string UCProcessType, string URL) { long fileLength; if (OAConfig.GetConfig("MOSS认证", "是否启用DLL") == "1") { fileLength = DocumentManager.FileLength(MossObject.GetDownLoadFileInfo(UCProcessType, URL)); } else { fileLength = MossObject.GetMOSSAPI().FileLength(MossObject.GetDownLoadFileInfo(UCProcessType, URL)); } return(fileLength); }
/// <summary> /// 将附件下载 写入文件 /// </summary> /// <param name="UCProcessType"></param> /// <param name="URL"></param> /// <returns></returns> public static string DownLoad_New(string UCProcessType, string URL) { string filePath = null; string strTempFileName = "Download_OA_" + Current.UserName + "_"; if (OAConfig.GetConfig("MOSS认证", "是否启用DLL") == "1") { filePath = DocumentManager.Download_New(MossObject.GetDownLoadFileInfo(UCProcessType, URL), strTempFileName); } else { filePath = MossObject.GetMOSSAPI().Download_New(MossObject.GetDownLoadFileInfo(UCProcessType, URL), strTempFileName); } return(filePath); }
public static string[] GetUploadFileInfo(string UCProcessType, string filePath) { string[] ret = new string[4]; ret[0] = OAConfig.GetConfig("MOSS认证", "ServerWeb"); if (UCProcessType == "") { ret[1] = "Temp"; } else { ret[1] = UCProcessType; } ret[2] = MossObject.GetFolderName(); //文件夹 ret[3] = MossObject.GetFileName() + System.IO.Path.GetExtension(filePath); //文件名 return(ret); }
protected void Page_Load(object sender, EventArgs e) { if (!Page.IsPostBack) { String l_strTemplateName = Request.QueryString[ConstString.QueryString.TEMPLATE_NAME]; String l_strUrl = Request.QueryString["URL"]; String l_strExtension = System.IO.Path.GetExtension(l_strUrl); String l_strAlias = Request.QueryString["Alias"]; String l_strTotalFileName = l_strAlias + l_strExtension; if (l_strTemplateName.Contains("新版")) { l_strTemplateName = l_strTemplateName.Substring(2); } String downName = HttpUtility.UrlEncode(System.Text.UTF8Encoding.UTF8.GetBytes(l_strTotalFileName)); long fileLength = MossObject.FileLength(l_strTemplateName, l_strUrl); //TODO:对于大附件的处理 //小附件:直接使用WebService,返回Byte[] //大附件:将附件从MOSS库写入文件,保存到服务器端 if (fileLength <= MossObject.middleFileSize * 1024 * 1024) { Byte[] fileByte = MossObject.DownLoad(l_strTemplateName, l_strUrl); Response.Buffer = true; Response.ContentType = "application/octet-stream"; Response.ContentEncoding = System.Text.Encoding.Unicode; Response.AddHeader("Content-Disposition", String.Format("attachment;filename={0}", downName)); Response.BinaryWrite(fileByte); Response.End(); } else { string tempFilePath = MossObject.DownLoad_New(l_strTemplateName, l_strUrl); this.DownLoad_File(tempFilePath, downName); } } }
protected void Page_Load(object sender, EventArgs e) { try { //进度条 inlineProgressBar.AddTrigger(btnUpload); //首次加载 if (!IsPostBack) { //Response.Expires = -1; //Response.ExpiresAbsolute = DateTime.Now; //Response.CacheControl = "no-cache"; //设置控件状态 if (UCIsAgain == "") { if (!UCIsEditable) { tbUpload.Visible = false; divUpload.Visible = false; btnOL.Visible = false; } } #region 接收值 //初始化赋值 if (Session["附件ListTemp"] != null) //从用户控件接收过来 { UCDataList = MossObject.Xml2FuJianList((String)Session["附件ListTemp"]); txtFJXML.Value = Session["附件ListTemp"].ToString(); Session.Remove("附件ListTemp"); //移除Session } #endregion multiFile.StorageConfig["tempDirectory"] = Path.Combine("App_Data", "file1temp"); //zhouli 处理历史附件 if (UCDataList.Count > 0 && UCWorkItemID != "" && UCIsEditable) { MossObject mossObject = new MossObject(); UCDataList = mossObject.GetNewListFuJian(UCProcessType, UCWorkItemID, UCDataList); } RepeaterFiles.DataSource = UCDataList; RepeaterFiles.DataBind(); #region 在线编辑设置 //在线编辑设置 //第一个是webservice地址 第二个是本地路径地址 第三个moss server web地址 第四个当前用户名 txtServicePath.Value = OAConfig.GetConfig("MOSS认证", "MossServiceUrl") + @",C:\\LocalTemp," + OAConfig.GetConfig("MOSS认证", "ServerWeb") + "," + CurrentUserInfo.DisplayName + ","; if (!UCIsEditable) { Panel1.Visible = false; } else { btnOL.Attributes.Add("onClick", String.Format("AttachmentWork('{0}','{1}');", UCControlID, txtServicePath.ClientID)); } #endregion RunScript(); } } catch (Exception ex) { JScript.ShowMsgBox(Page, MsgType.VbExclamation, ex.Message); } }
/// <summary> /// 上传附件 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> protected void btnUpload_Click(object sender, EventArgs e) { try { if (String.IsNullOrEmpty(UCProcessType)) { JScript.ShowMsgBox(Page, MsgType.VbExclamation, "文档库设置不能为空!"); return; } if (multiFile.Files.Length <= 0) { return; } foreach (UploadedFile file in multiFile.Files) { if (file.FileName.Contains("#") || file.FileName.Contains("'")) { JScript.ShowMsgBox(Page, MsgType.VbExclamation, file.FileName + "含有特殊字符,请替换后再上传"); JScript.ResponseScript(this, "javascript:__doPostBack('LinkButton1','')"); return; } } foreach (UploadedFile file in multiFile.Files) { if (file.ContentLength <= MossObject.maxFileSize * 1024 * 1024) { MossObject attach = new MossObject(); attach.ServerWeb= OAConfig.GetConfig("MOSS认证", "ServerWeb"); attach.OldFileName = file.FileName; attach.DocumentName = UCProcessType; #region 更新栏位 List<DictionaryEntry> lst = new List<DictionaryEntry>(); DictionaryEntry de = new DictionaryEntry(); de.Key = "流程实例"; de.Value = UCProcessID; lst.Add(de); de = new DictionaryEntry(); de.Key = "别名"; de.Value = file.FileName; lst.Add(de); de = new DictionaryEntry(); de.Key = "上次修改者"; de.Value = CurrentUserInfo.DisplayName; lst.Add(de); #endregion DictionaryEntry[] result = attach.ConvertToDE(lst.ToArray()); attach.DocumentEntry = result; //文件扩展名 string fileType = System.IO.Path.GetExtension(file.FileName); if (fileType.IndexOf('.') == 0) { fileType = fileType.Substring(1); } bool IsSuccess = false; if ("exe,dll".Contains(fileType.ToLower())) { IMessage im = new WebFormMessage(Page, "不可上传exe或dll文件!"); im.Show(); IsSuccess = false; } else { attach.UploadFilesStream = file.InputStream; //上传附件并更新栏位 IsSuccess = attach.Upload(); } if (IsSuccess) { CFuJian ff = new CFuJian(); ff.Type = System.IO.Path.GetExtension(attach.FileName); if (ff.Type.IndexOf('.') == 0) { ff.Type = ff.Type.Substring(1); } ff.Title = attach.FileName; ff.Alias = System.IO.Path.GetFileNameWithoutExtension(attach.OldFileName); ff.FolderName = attach.FolderName; ff.FileName = attach.FileName; ff.Size = attach.ToFileSize_new(file.ContentLength); //文件大小 ff.ProcessType = UCProcessType; ff.WorkItemID = UCWorkItemID; ff.fullURL = attach.UploadFullName; //全路径 ff.URL = attach.UploadURL;//文件夹+/文件名 UCDataList.Add(ff); } //CFuJian l_objAttachment = MossObject.Upload(file, UCProcessType, UCProcessID, UCWorkItemID); //UCDataList.Add(l_objAttachment); } else { JScript.ShowMsgBox(Page, MsgType.VbExclamation, file.FileName + "大小超过" + MossObject.maxFileSize + "M"); } } RepeaterFiles.DataSource = UCDataList; RepeaterFiles.DataBind(); RunScript(); } catch (Exception ex) { JScript.ShowMsgBox(Page, MsgType.VbExclamation, ex.Message); } }
public static CFuJian Upload(UploadedFile file, string UCProcessType, string UCProcessID, string UCWorkItemID) { CFuJian cFuJian = new CFuJian(); OA_DocumentService api = MossObject.GetMOSSAPI(); string[] fileInfo = GetUploadFileInfo(UCProcessType, file.FileName); cFuJian.Type = System.IO.Path.GetExtension(file.FileName); //文件类型 扩展名 if (cFuJian.Type.IndexOf('.') > -1) { cFuJian.Type = cFuJian.Type.Substring(1); } cFuJian.Alias = file.FileName.Substring(0, file.FileName.Length - cFuJian.Type.Length - 1); //别名 //ff.Title = ff.Alias + "." + ff.Type; cFuJian.Title = fileInfo[3]; if (cFuJian.Type.Length == 0)//没有扩展名 { cFuJian.Alias = file.FileName; } cFuJian.Alias = cFuJian.Alias.Replace(" ", ""); cFuJian.FolderName = fileInfo[2]; cFuJian.FileName = fileInfo[3]; cFuJian.Size = MossObject.ToFileSize(file.ContentLength); //文件大小 cFuJian.ProcessType = UCProcessType; cFuJian.WorkItemID = UCWorkItemID; string[] saveUrl; #region DLL if (OAConfig.GetConfig("MOSS认证", "是否启用DLL") == "1") { #region 更新栏位 List <System.Collections.DictionaryEntry> lst = new List <System.Collections.DictionaryEntry>(); System.Collections.DictionaryEntry de = new System.Collections.DictionaryEntry(); de.Key = "流程实例"; de.Value = UCProcessID; lst.Add(de); de = new System.Collections.DictionaryEntry(); de.Key = "别名"; de.Value = cFuJian.Alias; lst.Add(de); de = new System.Collections.DictionaryEntry(); de.Key = "上次修改者"; de.Value = CurrentUserInfo.DisplayName; lst.Add(de); #endregion System.Collections.DictionaryEntry[] result = DocumentManager.ConvertToDE(lst.ToArray()); if (file.ContentLength <= MossObject.middleFileSize * 1024 * 1024) { saveUrl = DocumentManager.Upload(fileInfo, MossObject.StreamToBytes(file.InputStream), result, false); } else { string strFileTemp = "D:\\FileTemp\\"; if (System.IO.Directory.Exists(strFileTemp) == false) { System.IO.Directory.CreateDirectory(strFileTemp); } string fileTemp = strFileTemp + "OA" + Current.UserName + Path.GetFileNameWithoutExtension(file.TmpFile.Name); string filePath = fileTemp + file.FileName; p1: if (System.IO.File.Exists(filePath)) { filePath = fileTemp + new Random(1).Next(100).ToString() + file.FileName; goto p1; } else { file.TmpFile.MoveTo(filePath); } saveUrl = DocumentManager.Upload(fileInfo, filePath, result, false); File.Delete(filePath); } ////int ret = api.CopyTo(fileInfo, "322.doc", true); //file.TmpFile.Delete(); //删除临时文件 //cFuJian.fullURL = saveUrl[0]; //全路径 //cFuJian.URL = saveUrl[1];//文件夹+/文件名 //cFuJian.Encode = "";//文件编码 //return cFuJian; } #endregion #region webservice else { #region 更新栏位 List <DictionaryEntry> lst = new List <DictionaryEntry>(); DictionaryEntry de = new DictionaryEntry(); de.Key = "流程实例"; de.Value = UCProcessID; lst.Add(de); de = new DictionaryEntry(); de.Key = "别名"; de.Value = cFuJian.Alias; lst.Add(de); de = new DictionaryEntry(); de.Key = "上次修改者"; de.Value = CurrentUserInfo.DisplayName; lst.Add(de); #endregion DictionaryEntry[] result = api.ConvertToDE(lst.ToArray()); if (file.ContentLength <= MossObject.middleFileSize * 1024 * 1024) { //上传到文档库 saveUrl = api.Upload(fileInfo, MossObject.StreamToBytes(file.InputStream), result, false); } else { string strFileTemp = "D:\\FileTemp\\"; if (System.IO.Directory.Exists(strFileTemp) == false) { System.IO.Directory.CreateDirectory(strFileTemp); } string fileTemp = strFileTemp + "OA" + Current.UserName + Path.GetFileNameWithoutExtension(file.TmpFile.Name); string filePath = fileTemp + file.FileName; p1: if (System.IO.File.Exists(filePath)) { filePath = fileTemp + new Random(1).Next(100).ToString() + file.FileName; goto p1; } else { file.TmpFile.MoveTo(filePath); } saveUrl = api.Upload_New(fileInfo, filePath, result, false); File.Delete(filePath); } } #endregion file.TmpFile.Delete(); //删除临时文件 cFuJian.fullURL = saveUrl[0]; //全路径 cFuJian.URL = saveUrl[1]; //文件夹+/文件名 cFuJian.Encode = ""; //文件编码 return(cFuJian); }
public DictionaryEntry[] ConvertToDE(DictionaryEntry[] entrys) { OA_DocumentService api = MossObject.GetMOSSAPI(); return(api.ConvertToDE(entrys)); }
/// <summary> /// 上传附件 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> protected void btnUpload_Click(object sender, EventArgs e) { try { if (String.IsNullOrEmpty(UCProcessType)) { JScript.ShowMsgBox(Page, MsgType.VbExclamation, "文档库设置不能为空!"); return; } if (multiFile.Files.Length <= 0) { return; } foreach (UploadedFile file in multiFile.Files) { if (file.FileName.Contains("#") || file.FileName.Contains("'")) { JScript.ShowMsgBox(Page, MsgType.VbExclamation, file.FileName + "含有特殊字符,请替换后再上传"); JScript.ResponseScript(this, "javascript:__doPostBack('LinkButton1','')"); return; } } foreach (UploadedFile file in multiFile.Files) { if (file.ContentLength <= MossObject.maxFileSize * 1024 * 1024) { MossObject attach = new MossObject(); attach.ServerWeb = OAConfig.GetConfig("MOSS认证", "ServerWeb"); attach.OldFileName = file.FileName; attach.DocumentName = UCProcessType; #region 更新栏位 List <DictionaryEntry> lst = new List <DictionaryEntry>(); DictionaryEntry de = new DictionaryEntry(); de.Key = "流程实例"; de.Value = UCProcessID; lst.Add(de); de = new DictionaryEntry(); de.Key = "别名"; de.Value = file.FileName; lst.Add(de); de = new DictionaryEntry(); de.Key = "上次修改者"; de.Value = CurrentUserInfo.DisplayName; lst.Add(de); #endregion DictionaryEntry[] result = attach.ConvertToDE(lst.ToArray()); attach.DocumentEntry = result; //文件扩展名 string fileType = System.IO.Path.GetExtension(file.FileName); if (fileType.IndexOf('.') == 0) { fileType = fileType.Substring(1); } bool IsSuccess = false; if ("exe,dll".Contains(fileType.ToLower())) { IMessage im = new WebFormMessage(Page, "不可上传exe或dll文件!"); im.Show(); IsSuccess = false; } else { attach.UploadFilesStream = file.InputStream; //上传附件并更新栏位 IsSuccess = attach.Upload(); } if (IsSuccess) { CFuJian ff = new CFuJian(); ff.Type = System.IO.Path.GetExtension(attach.FileName); if (ff.Type.IndexOf('.') == 0) { ff.Type = ff.Type.Substring(1); } ff.Title = attach.FileName; ff.Alias = System.IO.Path.GetFileNameWithoutExtension(attach.OldFileName); ff.FolderName = attach.FolderName; ff.FileName = attach.FileName; ff.Size = attach.ToFileSize_new(file.ContentLength); //文件大小 ff.ProcessType = UCProcessType; ff.WorkItemID = UCWorkItemID; ff.fullURL = attach.UploadFullName; //全路径 ff.URL = attach.UploadURL; //文件夹+/文件名 UCDataList.Add(ff); } //CFuJian l_objAttachment = MossObject.Upload(file, UCProcessType, UCProcessID, UCWorkItemID); //UCDataList.Add(l_objAttachment); } else { JScript.ShowMsgBox(Page, MsgType.VbExclamation, file.FileName + "大小超过" + MossObject.maxFileSize + "M"); } } RepeaterFiles.DataSource = UCDataList; RepeaterFiles.DataBind(); RunScript(); } catch (Exception ex) { JScript.ShowMsgBox(Page, MsgType.VbExclamation, ex.Message); } }