最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

使用multer的url中有%20

运维笔记admin19浏览0评论

使用multer的url中有%20

使用multer的url中有%20

我正在尝试使用节点中的multer制作文件上传程序并表达。我已经成功上传并且也读了它但是当我使用我的索引进行显示预览时,它无法显示任何图像在检查中有一个完美的链接但是当我点击该链接并打开它包含%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编码的空格字符。

你的html中的这一行包含那个空格:

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

删除该空间可能会解决您的问题。

与本文相关的文章

发布评论

评论列表(0)

  1. 暂无评论