当前位置: 首页 > news >正文

uniGUI文件操作

一.文件上传TUniFileUploadButton

TUniFileUploadButton主要属性:

Filter: 文件类型过滤,有图片image/*   audio/* video/*三种过滤

MaxAllowedSize: 设置文件最大上传尺寸;

Message标题以及消息文本,可翻译成中文

TUniFileUploadButton控件 支持多文件批量上传! 

procedure TMainForm.UniFileUploadButton1Completed(Sender: TObject;  AStream: TFileStream);
vari:integer;
beginUniFileUploadButton1.MultipleFiles:=True;//多选 模式  UniFileUploadButton1.MaxFiles:=4;         //最大文件数for I := 0 to UniFileUploadButton1.MaxFiles-1 do  begincaption:= UniFileUploadButton1.Files[i].FileName ;end;
end;

如果文件数超过MaxFiles


 事件:OnCompleted(Sender: TObject; AStream: TFileStream)

procedure TMainForm.UniFileUploadButton1Completed(Sender: TObject;  AStream: TFileStream);
varDestName : string;DestFolder : string;
begin//将 文件 加载到  UniImage1里UniImage1.Picture.LoadFromFile(AStream.FileName);Caption:='File Name: '+UniFileUploadButton1.FileName;//将 文件 保存到UploadFolder文件夹,先要创建这个UploadFolder文件夹DestFolder:=UniServerModule.StartPath+'UploadFolder\';   //要在与exe同下新建一个UploadFolder文件夹DestName:=DestFolder+ExtractFileName(UniFileUploadButton1.FileName);CopyFile(PChar(AStream.FileName), PChar(DestName), False);ShowMessage('File: '+UniFileUploadButton1.FileName+' Uploaded to folder: '+DestFolder);end;

2文件下载

1]SendFile

2]SendStream 

3]自定义类型文件**


 1]SendFile

UniSession.SendFile('新建文本文档.txt'  //服务器端  文件名,'anew.txt'          //客户端 新下载 的文件名);

2]SendStream 

procedure TMainForm.UniButton3Click(Sender: TObject);
varS : TStringStream;
beginS:=TStringStream.Create('Some text here....');tryUniSession.SendStream(S, 'Mydoc.txt');finallyS.Free;end;
end;

 


 3]自定义类型文件下载

UniSession.SendFile(ServerModule.UniServerModule.FilesFolderPath+'aaa.abc');

web默认文档主目录在执行程序同级目录下的files子目录下,该属性可以在ServerModule的FilesFolder属性中配置。

对于常见的文档类型,浏览器默认支持,对于如abc扩展名的特殊类文档,点击后浏览器会没有动作,你需要配置一下MIME表。 

在ServerModule的OnCreate属性中添加:

MimeTable.AddMimeType("abc","abc");
http://www.lryc.cn/news/199184.html

相关文章:

  • Python多进程之分享(multiprocessing包)
  • 【试题028】C语言关于逻辑与的短路例题
  • TSINGSEE烟火识别算法的技术原理是什么?如何应用在视频监控中?
  • 优雅而高效的JavaScript——?? 运算符、?. 运算符和 ?. .运算符
  • 【数之道 08】走进“卷积神经网络“,了解图像识别背后的原理
  • Stm32_标准库_期末设计_温度测量光照测量手机与芯片通信实现信息的更新
  • JavaScript 的类型和值
  • Kotlin Compose Multiplatform 跨平台开发实践之加入 iOS 支持
  • 【小黑嵌入式系统第四课】嵌入式系统硬件平台(二)——I/O设备、通信设备(UARTUSB蓝牙)、其他(电源时钟复位中断)
  • 报错:AttributeError: module ‘tensorflow‘ has no attribute ‘flags‘
  • Android--Retrofit2执行多个请求任务并行,任务结束后执行统一输出结果
  • 面试算法30:插入、删除和随机访问都是O(1)的容器
  • Qt/C++开源作品45-CPU内存显示控件/和任务管理器一致
  • win32汇编-使用子程序
  • 【论文阅读】 Cola-Dif; An explainable task-specific synthesis network
  • ShareMouse for Mac(多台电脑鼠标键盘共享软件)
  • 中文编程开发语言工具开发案例:多种称重方式编程实际例子
  • 国密sm2的Vue、Python、Java互通使用
  • 如何通过SK集成chatGPT实现DotNet项目工程化?
  • DRM中render-node编号的分配
  • 将输入对象转换为数组数组的维度大于等于1numpy.atleast_1d()
  • js 删除树状图无用数据,如果子级没有数据则删除
  • Docker 容器化(初学者的分享)
  • LCS 01.下载插件
  • 架构-设计原则
  • 在 Python 3 中释放 LightGBM 的力量:您的机器学习大师之路
  • Spring学习笔记(2)
  • cmd使用ssh连接Linux脚本
  • Python万圣节蝙蝠
  • TCP流套接字编程