z-react-ui
Version:
z-react-ui,是一款基于 Dumi,由 React + TypeScript 开发的组件库 🎉。
81 lines (62 loc) • 2.3 kB
JavaScript
import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
import "antd/es/message/style";
import _message from "antd/es/message";
import request from './request';
import checkImageFileWH from './checkImageFileWH';
function uploadFile(_ref) {
var _ref$name = _ref.name,
name = _ref$name === void 0 ? 'file' : _ref$name,
file = _ref.file,
url = _ref.url,
rules = _ref.rules,
successOrFailTip = _ref.successOrFailTip,
otherFormDataParams = _ref.otherFormDataParams;
// 首先校验
if (rules) {
var maxSize = rules.maxSize,
fileType = rules.fileType,
WH = rules.WH; // 校验文件类型
if (fileType && Array.isArray(fileType.value) && !fileType.value.includes(file.type)) {
_message.error(fileType.msg);
return false;
} // 校验文件体积大小
if (maxSize && maxSize.value < file.size / 1024) {
_message.error(maxSize.msg);
return false;
} // 校验文件尺寸大小
if (WH && WH.value) {
return checkImageFileWH(file, WH.value).catch(function (errKey) {
_message.error(WH.msg[errKey] || '图片上传失败');
throw new Error();
});
}
}
var formData = new FormData();
formData.append(name, file); // 表示对象有值
if (otherFormDataParams && Object.keys(otherFormDataParams).length) {
Object.entries(otherFormDataParams).forEach(function (_ref2) {
var _ref3 = _slicedToArray(_ref2, 2),
k = _ref3[0],
v = _ref3[1];
formData.append(k, v);
});
}
var isExistence = !!(successOrFailTip && Object.keys(successOrFailTip).length);
return request(url, {
method: 'POST',
headers: {
'Content-Type': 'multipart/form-data'
},
data: formData
}).then(function (data) {
if (!data || data.status !== 200 || !data.data || !data.success) {
_message.error("".concat(isExistence ? successOrFailTip.failTip : '上传文件失败'));
throw new Error("".concat(isExistence ? successOrFailTip.failTip : '上传文件失败'));
}
_message.success("".concat(isExistence ? successOrFailTip.successTip : '上传文件成功')); // 成功后,返回data
return data;
}).catch(function (e) {
console.warn(e);
});
}
export default uploadFile;