/// <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);
            }
        }
Ejemplo n.º 2
0
        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;
        }
Ejemplo n.º 3
0
 public DictionaryEntry[] ConvertToDE(DictionaryEntry[] entrys)
 {
     OA_DocumentService api = MossObject.GetMOSSAPI();
     return api.ConvertToDE(entrys);
 }
Ejemplo n.º 4
0
 /// <remarks/>
 public void ConvertToDEAsync(DictionaryEntry[] entries) {
     this.ConvertToDEAsync(entries, null);
 }
Ejemplo n.º 5
0
 /// <remarks/>
 public void ConvertToDEAsync(DictionaryEntry[] entries, object userState) {
     if ((this.ConvertToDEOperationCompleted == null)) {
         this.ConvertToDEOperationCompleted = new System.Threading.SendOrPostCallback(this.OnConvertToDEOperationCompleted);
     }
     this.InvokeAsync("ConvertToDE", new object[] {
                 entries}, this.ConvertToDEOperationCompleted, userState);
 }
Ejemplo n.º 6
0
 /// <remarks/>
 public void UpdateMetaAsync(string[] fileInfo, DictionaryEntry[] deMeta, object userState) {
     if ((this.UpdateMetaOperationCompleted == null)) {
         this.UpdateMetaOperationCompleted = new System.Threading.SendOrPostCallback(this.OnUpdateMetaOperationCompleted);
     }
     this.InvokeAsync("UpdateMeta", new object[] {
                 fileInfo,
                 deMeta}, this.UpdateMetaOperationCompleted, userState);
 }
Ejemplo n.º 7
0
 /// <remarks/>
 public void UpdateMetaAsync(string[] fileInfo, DictionaryEntry[] deMeta) {
     this.UpdateMetaAsync(fileInfo, deMeta, null);
 }
Ejemplo n.º 8
0
 /// <remarks/>
 public void Upload_NewAsync(string[] fileInfo, string strFileTempUrl, DictionaryEntry[] deMeta, bool overwrite, object userState) {
     if ((this.Upload_NewOperationCompleted == null)) {
         this.Upload_NewOperationCompleted = new System.Threading.SendOrPostCallback(this.OnUpload_NewOperationCompleted);
     }
     this.InvokeAsync("Upload_New", new object[] {
                 fileInfo,
                 strFileTempUrl,
                 deMeta,
                 overwrite}, this.Upload_NewOperationCompleted, userState);
 }
Ejemplo n.º 9
0
 /// <remarks/>
 public void Upload_NewAsync(string[] fileInfo, string strFileTempUrl, DictionaryEntry[] deMeta, bool overwrite) {
     this.Upload_NewAsync(fileInfo, strFileTempUrl, deMeta, overwrite, null);
 }
Ejemplo n.º 10
0
 /// <remarks/>
 public void UploadAsync(string[] fileInfo, byte[] bStream, DictionaryEntry[] deMeta, bool overwrite) {
     this.UploadAsync(fileInfo, bStream, deMeta, overwrite, null);
 }