react ts 上传
public MessageObjectPO<UploadPO> OnPostUpload(UploadRO uploadRO) {
var response = new MessageObjectPO<UploadPO>();
Guid guid = Guid.NewGuid();
string FilePath = _serverSettings.SafetyRuleTempPath + "\\" + guid + "\\";
DirectoryInfo di = new DirectoryInfo(FilePath);
if (!di.Exists) {
di.Create();
}
using (var stream = System.IO.File.Create(FilePath + "\\" + uploadRO.fileName)) {
byte[] bytes = uploadRO.content;
stream.Write(bytes, 0, uploadRO.content.Length);
response.Data = new UploadPO() {
Edition = DateTime.Now.DayOfYear,
Revision = 0,
MinorVersion = 0,
OperativeFrom = DateTime.Now,
VersionFileSharePointPath = FilePath.Replace(@"\\", @"\"),
VersionFileName = uploadRO.fileName,
VersionFileSize = uploadRO.fileSize / 1024 / 1024,
VersionId = Guid.NewGuid(),
};
}
response.StatusCode = HttpStatusCode.OK;
return response;
}
public class UploadRO {
public string uid { get; set; }
public string fileName { get; set; }
public int fileSize { get; set; }
public byte[] content { get; set; }
}
function onSaveRequest(
files: UploadFileInfo[],
options: { formData: FormData; requestOptions: any },
onProgress: (uid: string, event: ProgressEvent<EventTarget>) => void
): Promise<{ uid: string }> {
const currentFile = files[0] as UploadFileInfo;
const uid = currentFile.uid;
const saveRequestPromise = new Promise<{ uid: string }>( (resolve, reject) => {
// as currently configured it is impossible to request a save from the UI if there are validation errors, but that can be changed so keeping this check in place
if (currentFile.validationErrors && currentFile.validationErrors.length > 0) {
reject({ uid: uid });
} else {
const reader = new FileReader();
// onload is executed when the load even is fired i.e. when content read with readAsArrayBuffer, readAsBinaryString, readAsDataURL or readAsText is available
reader.onload = () => {
if (reader.result && typeof reader.result === "string") {
// stripping the data-url declaration as per https://developer.mozilla.org/en-US/docs/Web/API/FileReader/readAsDataURL
const base64Result = reader.result.split(",")[1];
// update viewModel and resolve
const fileUpload: IFileUploadViewModel = { uid: uid, fileName: currentFile.name, fileSize: currentFile.size!, content: base64Result};
Handler_Upload(fileUpload);
resolve({ uid: uid });
} else {
reject({ uid: uid });
}
};
// onprogress is fired periodically as the FileReader reads data and the ProgressEvent can be passed directly to the Upload control, handy!
reader.onprogress = (data) => {
reader.readAsArrayBuffer(currentFile.getRawFile!())
console.log(data)
onProgress(uid, data);
};
// if the read is not completed due to error or user intervention, reject
reader.onabort = () => {
reject({ uid: uid });
};
reader.onerror = () => {
reject({ uid: uid });
}; reader.readAsDataURL(currentFile.getRawFile!());
}
}); return saveRequestPromise;
}
const pageTable = (
<div>
<Upload
{...fileProps}
batch={false}
multiple={false}
defaultFiles={[]}
showFileList={true}
restrictions={{
allowedExtensions: [".pdf"],
}}
withCredentials={true}
onAdd={onAdd}
onProgress={onProgress}
onStatusChange={onStatusChange}
onBeforeUpload={onBeforeUpload}
onRemove={onRemove}
saveUrl={onSaveRequest}
/>
</div>
)
return <>{pageTable}</>
beforeUpload(file, fileList) {
var reader = new FileReader();
const image = new Image();
var height;
var width;
var base64Url;
//因为读取文件需要时间,所以要在回调函数中使用读取的结果
reader.readAsDataURL(file); //开始读取文件
reader.onload = (e) => {
image.src = reader.result;
image.onload = () => {
height = image.naturalHeight;
width = image.naturalWidth;
base64Url= e.target.result, //cropper的图片路径
}
}
return false;
}
react ts 上传的更多相关文章
- 前端(react)上传到阿里云OSS存储 实例
需求背景 由于现有的后台管理系统,上传的视频越来越大,加上上传视频较慢,后端小哥提出直接从前端上传视频或者其他文件到阿里云OSS存储. 阿里云OSS 阿里云OSS文档介绍,这里不做过多赘述 安装 原本 ...
- 基于Node的React图片上传组件实现
写在前面 红旗不倒,誓把JavaScript进行到底!今天介绍我的开源项目 Royal 里的图片上传组件的前后端实现原理(React + Node),花了一些时间,希望对你有所帮助. 前端实现 遵循R ...
- 分享一个react 图片上传组件 支持OSS 七牛云
react-uplod-img 是一个基于 React antd组件的图片上传组件 支持oss qiniu等服务端自定义获取签名,批量上传, 预览, 删除, 排序等功能 需要 react 版本大于 v ...
- 将HTML页面自动保存为PDF文件并上传的两种方式(一)-前端(react)方式
一.业务场景 公司的样本检测报告以React页面的形式生成,已调整为A4大小的样式并已实现分页,业务上需要将这个网页生成PDF文件,并上传到服务器,后续会将这个文件发送给客户(这里不考虑). 二.原来 ...
- React + js-xlsx构建Excel文件上传预览功能
首先要准备react开发环境以及js-xlsx插件 1. 此处省略安装react安装步骤 2.下载js-xlsx插件 yarn add xlsx 或者 npm install xlsx 在项目中引入 ...
- 上传文件Base64格式(React)
记录一下上传文件时将文件数据转为Base64的方法 通过 FileReader对象创建一个实例,然后使用 readAsDataURL方法将数据转为Base64格式 注意: 读取过程是异步的 绑定onl ...
- react native中如何往服务器上传网络图片
let common_url = 'http://192.168.1.1:8080/'; //服务器地址 let token = ''; //用户登陆后返回的token /** * 使用fetch实现 ...
- react native android 上传文件,Nodejs服务端获取上传的文件
React Native端 使用react-native-image-picker 做出选择图片的操作,选择完成后,直接将图片Post至服务器,保存在服务器的某个地方(保存图片的路径需要公开显示),并 ...
- 60分钟课程: 用egg.js实现增删改查,文件上传和restfulApi, webpack react es6 (一)
今天开始我将写nodejs框架egg.js, react 实现的增删改查,文件上传等常用的b/s场景,这个将分3部分来写. 会让你在60分钟内快速 入口并应用~ 你应该用es6, node,或是ph ...
- (转)React Native 使用react-native-image-picker库实现图片上传功能
react-native-image-picker作为一个集成相机和相册的功能的第三方库,因为其使用相对简单受到前端开发人员的喜爱. react-native-image-picker使用 首先,安装 ...
随机推荐
- 流(stream)如何理解?
前言 如果你搜索输入输出函数,那么你会看到各种各样的流.那么这个流到底是什么东西呢,本文将形象地类比介绍通用的流. 怎样理解通用的流 流,顾名思义就是像水流一样可以流动的事物,可以在不同的领域来去自如 ...
- PHP 发送application/json POST请求
PHP用CURL发送Content-type为application/json的POST请求方法 function json_post($url, $data = NULL) { $curl = cu ...
- function的length,就是第一个具有默认值之前的参数个数。
一个拥有 length 属性和若干索引属性的对象就可以被称为类数组对象,类数组对象和数组类似,但是不能调用数组的方法.常见的类数组对象有 arguments 和 DOM 方法的返回结果,还有一个函数也 ...
- ChatGPT回答的关于maxscript + python
- 组建LAN
推荐 cisco packet tracer 软件,可以画拓扑图,组件局域网等. ---------------------------------- 物联网:世界上很多物体的连接.物联网与现有的互联 ...
- Linux系统Shell脚本第一章:Shell脚本基础及时间同步
目录 一.Shell脚本基础 1.Shell作用 2.什么是Shell脚本及处理逻辑 3.shell脚本基本格式 4. shell脚本执行方式 5.实操演示 二.Shell脚本中的变量 1.变量的作用 ...
- 一条命令删除所有静态路由华为eNSP
在系统视图下执行undo ip route-static all,可以一次删除所有静态路由,包括缺省路由. 默认状态: 执行 undo ip route-static all
- Java基础学习:12、类变量和类方法(静态变量/方法)
一.类变量: 1.定义:类变量也叫静态变量,是该类所有对象(一个类可以new多个对象)共享的一个变量,任何一个该类变量去访问它时,取到的都是相同的值,同样一个该类的对象去修改它时,修改的也是同一个变量 ...
- Linux常用命令-文件处理命令一
命令格式: 命令 [-选项] [参数] 例如: ls -la /etc 说明: 选项--通常是功能 参数--通常是操作对象 ...
- [3] ScanRefer论文精读 3DVisual Grounding开山之作
论文名称:ScanRefer: 3D Object Localization in RGB-D Scans using Natural Language 这篇文章最主要的工作,我觉得是两个,第一,提出 ...