在JavaScript中实现文件上传功能通常涉及到HTML的<input type="file">
元素和XMLHttpRequest或Fetch API来处理文件上传。以下是一个简单的示例代码,展示了如何使用原生JavaScript实现文件上传功能:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>File Upload Example</title>
</head>
<body>
<input type="file" id="fileInput">
<button onclick="uploadFile()">Upload</button>
<div id="status"></div>
</body>
</html>
function uploadFile() {
const fileInput = document.getElementById('fileInput');
const file = fileInput.files[0];
if (!file) {
alert('Please select a file.');
return;
}
const formData = new FormData();
formData.append('file', file);
fetch('/upload', {
method: 'POST',
body: formData
})
.then(response => response.json())
.then(data => {
document.getElementById('status').innerText = data.message;
})
.catch(error => {
console.error('Error:', error);
document.getElementById('status').innerText = 'Upload failed.';
});
}
const express = require('express');
const multer = require('multer');
const upload = multer({ dest: 'uploads/' });
const app = express();
app.post('/upload', upload.single('file'), (req, res) => {
if (!req.file) {
return res.status(400).json({ message: 'No file uploaded.' });
}
res.json({ message: 'File uploaded successfully.' });
});
app.listen(3000, () => {
console.log('Server started on http://localhost:3000');
});
uploadFile
函数被调用。FormData
对象来包装这个文件。/upload
端点。upload.onprogress
事件或Fetch API的ReadableStream来显示上传进度。这个示例提供了一个基本的文件上传功能实现,实际应用中可能需要根据具体需求进行更多的功能和安全性考虑。
领取专属 10元无门槛券
手把手带您无忧上云