如何修补 multer 文件名?
How can I patch the multer filename?
const multerStorage = multer.diskStorage({
destination: (req, file, cb) =>{
cb(null, '../client/public/uploadImg' )
},
filename : (req, file, cb) => {
const uniqueSuffix = Date.now() + '-' + Math.round(Math.random() * 1E9)
cb(null, file.fieldname + '-' + uniqueSuffix + '_' + file.originalname)
}
})
为我的文件创建一个唯一的名称并保存在 uploadIng 文件夹中后,我现在需要获取文件名以便我可以在我的客户端添加文件
{usrs.map((alldata, i)=>(
<div key={i} >
<img src={`/uploadImg/${alldata.photo}`} alt="..." />
<h1> {alldata.name}</h1>
<h3> {alldata.photo} </h3>
</div>
))}
在某些时候,您的客户端正在发出 HTTP 请求(我假设是 Ajax 请求)以上传图片。
这将由一些服务器端代码处理。这是来自 the documentation 的示例:
const multer = require('multer')
const upload = multer({ dest: './public/data/uploads/' })
app.post('/stats', upload.single('uploaded_file'), function (req, res) {
// req.file is the name of your file in the form above, here 'uploaded_file'
// req.body will hold the text fields, if there were any
console.log(req.file, req.body)
});
您需要在对 Ajax 请求的响应中发送 req.file
的值(或者更确切地说是从中派生的 URL 的值)。
由于您的客户端代码使用的是 JSX,因此我假设您使用的是 React.js。
client-side代码需要注意那个响应并将结果存储在state.
然后您可以在渲染组件时从状态中读取值。
const multerStorage = multer.diskStorage({
destination: (req, file, cb) =>{
cb(null, '../client/public/uploadImg' )
},
filename : (req, file, cb) => {
const uniqueSuffix = Date.now() + '-' + Math.round(Math.random() * 1E9)
cb(null, file.fieldname + '-' + uniqueSuffix + '_' + file.originalname)
}
})
为我的文件创建一个唯一的名称并保存在 uploadIng 文件夹中后,我现在需要获取文件名以便我可以在我的客户端添加文件
{usrs.map((alldata, i)=>(
<div key={i} >
<img src={`/uploadImg/${alldata.photo}`} alt="..." />
<h1> {alldata.name}</h1>
<h3> {alldata.photo} </h3>
</div>
))}
在某些时候,您的客户端正在发出 HTTP 请求(我假设是 Ajax 请求)以上传图片。
这将由一些服务器端代码处理。这是来自 the documentation 的示例:
const multer = require('multer') const upload = multer({ dest: './public/data/uploads/' }) app.post('/stats', upload.single('uploaded_file'), function (req, res) { // req.file is the name of your file in the form above, here 'uploaded_file' // req.body will hold the text fields, if there were any console.log(req.file, req.body) });
您需要在对 Ajax 请求的响应中发送 req.file
的值(或者更确切地说是从中派生的 URL 的值)。
由于您的客户端代码使用的是 JSX,因此我假设您使用的是 React.js。
client-side代码需要注意那个响应并将结果存储在state.
然后您可以在渲染组件时从状态中读取值。