url 中有 %20 使用 multer

there is %20 in url using multer

我正在尝试在 node 和 express 中使用 multer 制作文件上传程序。我已经成功上传并且也阅读了它但是当我使用我的索引进行显示预览时它无法在检查中显示任何图像有一个完美的 link 但是当我点击那个 link 并打开它包含 % 20 并且没有图像文件的预览

这是app.js

的代码
      app.get('/', (req,res)=>{
   gfs.files.find().toArray((err,files) => {
    //check if files
    if(!files || files.length === 0 ){
        res.render('index', {files: false});
    }else{
        files.map( file => {
            if(file.contentType === 'image/jpeg' || file.contentType === 'image/png'){
                file.isImage = true;
            }else{
                file.isImage = false;
            }
        });
        //console.log(files);

        res.render('index', {files: files});
    }
});
});

这是我的 html

 <h1 class="text-center display-4 my-4">Mongo file upload</h1>    
        <form action="/upload" method="POST" enctype="multipart/form-data">
            <div class="custom-file mb-3">
                <input type="file" name="file" id="file" class="custom-file-input">
                <label for="file" class="custom-file-label">Choose File</label>
            </div>
            <input type="submit" value="Submit" class="btn btn-primary btn-block">
        </form>
        <hr>
        <% if(files){ %>
            <% files.forEach(function(file){ %>
                <div class="card card-body mb-3">
                    <%  if(file.isImage){ %>
                        <img src="image/ <%= file.filename %>" alt="Image">
                    <% }else{ %>
                        <%= file.filename %>
                    <% } %>
                </div>
            <%  }) %>
        <% }else{ %>
            <p>No files to show</p>
        <% } %>

%20 是 url 编码的 space 字符。

您 html 中的这一行包含 space:

<img src="image/ <%= file.filename %>" alt="Image">
                ^

删除 space 可能会解决您的问题。