那就是用我们的文档服务器把附件上传到应用服务器上:具体代码参考下面:
【代码实现文件的上传、下载、打开】
引用【业务模型\协同系统\文档\文档库】
1、打开
procedure TFRMDOCCENTER.OpenClick(Sender: TObject);
var
lResult: String;
begin
if not isFile then exit;
try
lResult := TUnStructureDocUtils.OpenFile(Context, FileName, TDocAccessKind.akReadOut);
except
lResult := TUnStructureDocUtils.OpenFile(Context, FileName, TDocAccessKind.akReadOut);
end;
jsDialogs.ShowMsg(lResult, 'OpenFile:');
end;
{
function TFRMDOCCENTER.isFile: Boolean;
begin
result := datasetdsWDs.FieldByName('FISDIRECTORY').AsString = 'N';
end;
//filename = getfilename
function TFRMDOCCENTER.GetFileName: String;
begin
with DataSetdsWDS do
begin
if not Active then Open;
if (RecordCount > 0) then
result := DataSetdsWDS.FieldByName('Path').AsString
else result := '';
end;
end;
procedure TFRMDOCCENTER.CheckInClick(Sender: TObject);
begin
if not isFile then exit;
TDocSystem.CheckIn(Context, FileName);
end;
}
2、上传
procedure TFRMDOCCENTER.UpLoadClick(Sender: TObject);
var
lFileName, osFile, lExt: string;
lFileAttribute: TFileAttribute;
begin
if (edit1.Text = '') or (edit2.Text = '') or (edit3.Text = '') then
begin
jsDialogs.ShowMsg('请选择上文件和存储路径!', '提示:');
exit;
end;
lFileAttribute := TFileAttribute.Create;
try
lFileAttribute.DisplayName := edit1.Text;
lFileAttribute.Size := 0;
lFileAttribute.CreateTime := SysUtils.Now;
lFileAttribute.IsDirectory := false;
lFileAttribute.IsHidden := false;
lFileAttribute.IsSpace := false;
lFileAttribute.LastWriteTime := SysUtils.Now;
lFileAttribute.ValuesAsString['OSFILENAME'] := edit3.Text;
lExt := Sysutils.ExtractFileExt(edit1.Text);
lFileName := edit2.text + jsCommon.CreateGUIDStr + lExt;
osFile := TUnStructureDocUtils.NewFile(Context, lFileName, lFileAttribute);
//TDocSystem.CheckIn(Context, lFileName);
finally
lFileAttribute.Free;
jsDialogs.ShowMsg(osFile, 'UpLoad:');
end;
end;
3、下载
procedure TFRMDOCCENTER.DownLoadClick(Sender: TObject);
begin
if not isFile then exit;
if SaveDialog1.Execute then
TUnStructureDocUtils.DownLoadFile(FileName, SaveDialog1.FileName);
end;
4、选择文档路径
procedure TFRMDOCCENTER.Button2Click(Sender: TObject);
begin
edit2.text := 'Doc:' + TSelectDocPath.getDocPath(Context);
end; |