2011-03-15 70 views

回答

1

有几种方法可以做这样的事情。假设您将链接发送给同一WAN上的某个人,或者让TRIM系统互联网可访问的安全风险选项,我要做的就是在TRIM SDK的顶部构建一个简单的Web服务。 TRIM SDK是COM(带有PIA包装器)或适当的.Net程序集(在版本7 *中),所以一个简单的ASP.Net服务将非常容易。

下面是基于HP提供的代码示例(基于TRIMSDKPIA20.dll,而不是TRIM 7.0 HP.HPTRIM.SDK程序集)构建的ASP.Net服务的代码。你可以使用它作为一个基础,使更多的东西REST风格的,但因为它是,你会使用URL喜欢叫它: http://server/ViewRecord/recno=D11-001

然后,您可以创建一个“外部链接”,一个插件在基于再次您可以在TRIM界面中注册为右键单击选项的SDK。就像“发送下载URL ...”一样,它会启动电子邮件并生成URL,但这有点复杂。

无论如何,对于web服务的代码:

using System; 
using System.Collections.Generic; 
using System.Web; 
using System.Web.UI; 
using System.Web.UI.WebControls; 
using TRIMSDK; 
using System.Configuration; 
using Microsoft.Win32; 
using System.IO; 

public partial class _Default : System.Web.UI.Page 
{ 
    protected void Page_Load(object sender, EventArgs e) 
    { 
     string errormsg = string.Empty; 

     //Response.Clear(); 
     Response.Cache.SetCacheability(HttpCacheability.NoCache); 
     Database trim = new Database(); 
     trim.SetAsWebService(); 
     trim.Id = ConfigurationSettings.AppSettings["dbid"]; 
     trim.WorkgroupServerName = ConfigurationSettings.AppSettings["wgserver"]; 
     trim.WorkgroupServerPort = Int32.Parse(ConfigurationSettings.AppSettings["wgport"]); 
     trim.Connect(); 
     string recno = Request.QueryString["recno"]; 
     if (String.IsNullOrEmpty(recno)) 
     { 
      errormsg = "No recno parameter was passed."; 
     } 
     else 
     { 
      Record rec = trim.GetRecord(recno); 
      if (rec == null) 
      { 
       errormsg = string.Format("Could not find a record with number \"{0}\". Either it doesn't exist, or you don't have permission to view it.", recno); 
      } 
      else 
      { 
       if (!rec.IsElectronic) 
       { 
        errormsg = string.Format("Record {0} does not have an electronic attachment", rec.Number); 
       } 
       else 
       { 
        IStream s = rec.GetDocumentStream(null, false, null); 

        Response.ClearHeaders(); 
        Response.AddHeader("Content-Disposition", "filename=" + rec.SuggestedFileName); 
        Response.AddHeader("Content-Length", rec.DocumentSize.ToString()); 
        Response.Buffer = false; 
        Response.ContentType = GetContentType(rec.Extension); 

        uint BufferSize = 10000; 
        uint DocumentLength = (uint)rec.DocumentSize; 
        byte[] buffer = new byte[BufferSize]; 
        uint bytesread; 
        uint totalread = 0; 

        Stream outstream = Response.OutputStream; 

        while (totalread < DocumentLength) 
        { 
         s.RemoteRead(out buffer[0], 10000, out bytesread); 
         if (bytesread < 10000) 
         { 
          for (uint i = 0; i < bytesread; i++) 
          { 
           outstream.WriteByte(buffer[i]); 
          } 
         } 
         else 
         { 
          outstream.Write(buffer, 0, 10000); 
         } 
         totalread += bytesread; 
        } 
        outstream.Close(); 
        Response.Flush(); 
        return; 
       } 
      } 
     } 
     Response.Write(errormsg); 
    } 

    private string GetContentType(string fileExtension) 
    { 
     string ct = Registry.GetValue(@"HKEY_CLASSES_ROOT\." + fileExtension.ToLower(), "Content Type", string.Empty) as string; 

     if (ct.Length == 0) 
     { 
      ct = "application/octet-stream"; 
     } 

     return ct; 
    } 
} 
3

TRIM 7之前,你是否能做到这一点本身取决于其TRIM功能安装。 要查看您是否拥有正确的东西,请在桌面上创建一个TR5文件,然后右键单击它 - “TryURL” - 复制URL (TryURL右键单击操作需要TRIM客户端的东西 - 如果您没有,尝试在记事本中打开TR5文件,并查看是否有超链接)。

你得到与TRIM(TIPS或TSCI)

或者是有便宜的第三方产品,看起来很酷的SharePoint连接这个功能 - 从Icognition私人有限公司