可以使用 mui.ajax 实现文件上传,结合 FormData 来处理文件上传操作。以下是一个示例代码,文件从 id="file"input 获取并上传:

<!DOCTYPE html>
<html lang="en">
	<head>
		<meta charset="UTF-8">
		<meta name="viewport" content="width=device-width, initial-scale=1.0">
		<title>File Upload</title>
		<script src="https://cdn.bootcdn.net/ajax/libs/mui/3.7.1/js/mui.min.js"></script>
	</head>
	<body> <input type="file" id="file" /> <button id="uploadButton">Upload</button>
		<script>
			document.getElementById('uploadButton').addEventListener('click', function() {

				// 获取文件输入框的文件
				var fileInput = document.getElementById('file');
				var file = fileInput.files[0];
				if (!file) {
					alert('请选择一个文件');
					return;
				}

				// 创建FormData对象 
				var formData = new FormData();
				formData.append('file', file); // 'file' 是服务器接收文件的字段名 
				// 使用 mui.ajax 上传文件 
				mui.ajax('/upload', { // 替换为你的上传地址 
					data: formData,
					processData: false, // 不处理数据 
					contentType: false, // 不设置内容类型 
					type: 'POST',
					success: function(response) {
						console.log('上传成功:', response);
					},
					error: function(xhr, type, errorThrown) {
						console.log('上传失败:', type);
					}
				});
			});
		</script>
	</body>
</html>

关键点说明:

  1. 使用 FormData 对象来处理文件数据。
  2. processData: falsecontentType: false 这两个配置项非常重要,分别用来阻止 mui.ajax 处理数据和设置 Content-Type,因为 FormData 会自动处理这些。
  3. mui.ajaxdata 属性中传递的就是 FormData

你可以根据你的后端上传接口调整路径和处理逻辑。

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐