unigui上傳圖片並將文件名保存到Access數據庫

 1、拖一個upload組件。

2、執行execute函數。

  unflpld_Up.Execute;

3、當上傳完成事件觸發。 

procedure TUniFrmMainWin.unflpld_UpCompleted(Sender: TObject;
  AStream: TFileStream);
var
  DestName    : string;    //目標文件
  DestFolder  : string;    //文件保存的路徑

  sResName    : String;    //真實保存在服務器上的文件名(ResName,不能有中文),
  sTitleName  : string;   //僅用於在Grid中顯示用的標籤名TitleName(允許中文)

  lJump       : boolean;  //存在則跳過

  lResult     : boolean;

  sExt        : string;   //文件擴展名,文件類型
begin
  //處理上傳完成後的事件

  //文件的擴展名
  sExt := LowerCase(ExtractFileExt(unflpld_Up.FileName));
  //文件名
  sTitleName := ExtractFileName(unflpld_Up.FileName);

  //文件保存的路徑
  DestFolder:=UniServerModule.FilesFolderPath + UniMainModule.UserName + '\';
  //創建文件目錄
  CreateDir(DestFolder);

  //將文件名另存爲日期時間命名的文件。
  sResName := FormatDateTime('yyyyMMddhhmmsszzz', now) + sExt;
  DestName:=DestFolder + sResName;

  //將文件保存到指定目錄下
  lResult := CopyFile(PChar(AStream.FileName), PChar(DestName), lJump);

  if lResult then
  begin
    //文件保存成功,寫入數據庫
    UniMainModule.adot_File.Active := False;
    UniMainModule.adot_File.Active := True;

    UniMainModule.adot_File.Append;
    UniMainModule.adot_File.FieldByName('FTitleName').AsString := sTitleName;
    UniMainModule.adot_File.FieldByName('FResName').AsString := sResName;
    UniMainModule.adot_File.FieldByName('FSize').AsString := IntToStr(AStream.Size);
    UniMainModule.adot_File.FieldByName('FDate').AsString := FormatDatetime('yyyy-MM-dd hh:mm:ss', now);;
    UniMainModule.adot_File.FieldByName('FOwner').AsString := uniMainModule.UserName;
    UniMainModule.adot_File.Post;

    //刷新個人文件顯示
    adoq_UserFiles.Active := False;
    adoq_UserFiles.Active := True;
  end
  else begin
    MessageDlg('上傳沒有成功', mtError, [mbOK]);
  end;
end;

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章