Я работаю над проектом загрузки файлов в локальный каталог.После загрузки файла я должен открыть диалоговое сообщение с надписью «Загрузка завершена».Когда пользователь даст ОК, тогда я снова выполню рендеринг страницы для дальнейшей загрузки.
Я попробовал модули 'dialog', 'node-notifier', чтобы показать диалоговое окно / уведомление окна.Это работает нормально, когда я разрабатываю проект на машине с Windows и нажимаю на localhost.
Но диалоговое окно не появляется, когда я развертываю его на сервере Linux и пытаюсь получить доступ, используя IP-адрес сервера.
App.js
const express = require("express");
const app = express();
const http = require("http").Server(app).listen(3000);
const upload = require("express-fileupload");
const dialog = require("dialog");
app.use(upload());
console.log("Server Started");
app.get("/", function (req, res) {
res.sendFile(__dirname + "/index.html");
}
)
app.post("/", function (req, res) {
if (req.files) {
//console.log(req.files);
const file = req.files.filename;
const filename = file.name;
file.mv("./upload/" + filename, function (err) {
if (err) {
console.log(err);
res.send("error occured");
}
else {
dialog.info('FileUploaded', 'Notification', function (exitCode) {
if (exitCode == 0) {
res.status(200);
res.sendFile(__dirname + "/index.html");
}
})
}
})
}
})
index.html
<div>
<h1 style="align-content: center">Upload your file here!</h1>
</div>
<div style=" background-color: white;
padding:64px;
display:flex;
align-items:flex-start;
justify-content: flex-start;
box-shadow: 0 15px 30px 0 rgba(0, 0, 0, 0.11), 0 20px 15px 0 rgba(0, 0, 0, 0.08);
box-sizing:border-box">
<form label="upload" method="post" enctype="multipart/form-data" action="/">
<label> Enter reference</label>
<input type="text" name="test_text"></input>
<br><br>
<input type="file" name="filename">
<input type="submit" value="upload">
</form>
</div>