写一个可以访问js然后去上传文件的js代码
时间: 2024-03-27 09:37:02 浏览: 17
以下是一个使用`express`框架和`formidable`模块实现通过访问URL上传文件的示例代码:
```javascript
const express = require('express');
const formidable = require('formidable');
const fs = require('fs');
const app = express();
app.get('/upload', (req, res) => {
const html = `
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>File Upload</title>
</head>
<body>
<h1>File Upload</h1>
<form action="/upload" method="post" enctype="multipart/form-data">
<input type="file" name="file">
<input type="submit" value="Upload">
</form>
</body>
</html>
`;
res.send(html);
});
app.post('/upload', (req, res) => {
const form = formidable({ multiples: false });
form.parse(req, (err, fields, files) => {
if (err) {
console.error(err.message);
return res.status(500).send('Internal Server Error');
}
const file = files.file;
if (!file) {
return res.status(400).send('No file uploaded.');
}
const newPath = `uploads/${file.name}`;
fs.rename(file.path, newPath, (err) => {
if (err) {
console.error(err.message);
return res.status(500).send('Internal Server Error');
}
res.send('File uploaded successfully.');
});
});
});
app.listen(3000, () => console.log('Server started on port 3000.'));
```
以上代码会在`/upload`路径下返回一个HTML页面,其中包含一个表单用于上传文件。上传文件时,文件会被保存在`uploads/`目录下,并返回`File uploaded successfully.`作为响应。你可以访问`http://localhost:3000/upload`进行测试。
注意:这只是一个简单的示例代码,实际使用时应该加入更多的错误处理和安全措施。