为了账号安全,请及时绑定邮箱和手机立即绑定

将 /upload 网页(从 node.js 中的表单发布请求获得)重定向到另一个 html 页面

将 /upload 网页(从 node.js 中的表单发布请求获得)重定向到另一个 html 页面

catspeake 2022-07-08 10:17:43
我是 node.js 的新手。我无法将页面 /upload 重定向到另一个 .html 网页。我的意思是,一切正常,我上传了 img 文件,代码转到http://localhost:3000/upload页面,但我不知道如何自动重定向到另一个页面。.html 文件这是我的 HTML:<div class="container">        <form action="/upload" method="POST" enctype="multipart/form-data">            <input name="myImage" type="file">            <input class="file-path validate" type="text" placeholder="Upload your file">    </div>    <button type="submit" class="btn">Submit</button>    </form>    </div>这里是我的服务器文件 index.jsconst express = require("express");const multer = require("multer");const path = require("path");const storage = multer.diskStorage({    destination: './public/uploads',    filename: function(req, file, cb) {        cb(null, file.fieldname + '-' + Date.now() + path.extname(file.originalname));    }});//init uploadconst upload = multer({    storage: storage,    limits: { filesize: 1000000 },    fileFilter: function(req, file, cb) {        checkFileType(file, cb);    }}).single('myImage'); //single imagefunction checkFileType(file, cb) {    const filetypes = /jpeg|jpg|png|gif/;    const extname = filetypes.test(path.extname(file.originalname).toLowerCase());    const mimetype = filetypes.test(file.mimetype);    if (mimetype && extname) {        return cb(null, true);    } else {        cb("Error:images only");    }};const app = express();app.use(express.static('./public'));app.post('/upload', (req, res) => {    upload(req, res, (err) => {        if (err) {            res.json(err);                    } else {            if (req.file == undefined) {                res.json("Error: No file selected")                              } else {                res.json(`/${req.file.filename}`);            }        }    });});app.listen(3000, function(req, res) {    console.log("you are listening to port 3000");});我登陆http://localhost:3000/upload并留在这里。如何跳过它并将此页面自动重定向到另一个代码 html 页面?谢谢你的帮助
查看完整描述

1 回答

?
肥皂起泡泡

TA贡献1829条经验 获得超6个赞

您只需要使用res.redirect('/path/here/);您的路线下的功能。


完整设置:


//Dependencies

const multer = require('multer');


//Multer DiskStorage Config

const diskStorage = multer.diskStorage({

    destination: 'assets/profile_upload',

    filename: (req, file, call_back) => {

        //Prepend date to the filename or anything that makes

        //the file unique so it won't be overwritten

        call_back(null, Date.now() + '_' + file.originalname);

    }


});


//Create Multer Instance

const upload = multer({ storage: diskStorage }); 



//Picture upload

//or app.post()

router.post('/upload-pic', upload.single('file'), (req, res) => {


//The redirection happens here.


console.log(req.file);

res.redirect('/your/path');


});

//Your code:

app.post('/upload', (req, res) => { ...



try doing app.post('/upload' ,upload.single('file'), (req,res) =>{ ...


查看完整回答
反对 回复 2022-07-08
  • 1 回答
  • 0 关注
  • 136 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信