web前端 导入文件 controller获取文件路径 写出代码
时间: 2024-05-16 15:16:08 浏览: 62
当您在Web前端上导入文件时,浏览器会默认将文件存储在内存或者浏览器缓存中。所以需要使用JavaScript的File API,然后将文件路径发送到服务端。以下是一个获取文件路径的示例代码:
HTML:
```html
<input type="file" id="fileInput">
<button onclick="handleUpload()">提交</button>
```
JavaScript:
```javascript
function handleUpload() {
const fileInput = document.querySelector('#fileInput');
const file = fileInput.files[0];
const formData = new FormData();
formData.append('file', file);
fetch('/upload', {
method: 'POST',
body: formData,
}).then((response) => {
console.log(response);
});
}
```
在服务端上,您可以使用Node.js的Express框架来处理文件上传,并获得文件的路径。下面是相应的代码示例:
```javascript
const express = require('express');
const app = express();
const multer = require('multer');
const upload = multer({
dest: 'uploads/'
});
app.post('/upload', upload.single('file'), (req, res) => {
const file = req.file;
const path = file.path;
// 返回上传成功的路径
res.send(path);
});
app.listen(3000, () => {
console.log('Server started on port 3000');
});
```
这段代码中使用了multer中间件来处理文件上传。Multer是一个Node.js的中间件,用于处理FormData,设置了upload.single('file')表示只接受单个文件。在请求被处理后,我们从请求对象req中获取上传文档的信息,包括路径、大小等信息,并将文件路径返回给客户端。
希望这个代码示例对您有所帮助。
阅读全文