我需要上传,显示并保存图像,以免刷新本地主机时不会丢失它。这需要使用“上传”按钮来完成,该按钮提示选择文件。
我正在使用node.js并表示服务器端代码。
首先,您应该制作一个包含文件input元素的HTML表单。您还需要将表单的 enctype 属性设置为 multipart / form-
data
:
<form method="post" enctype="multipart/form-data" action="/upload">
<input type="file" name="file">
<input type="submit" value="Submit">
</form>
假设在 index.html 中定义了表单,该表单存储在相对于脚本所在位置的名为 public 的目录中,则可以通过以下方式提供该表单:
const http = require("http");
const path = require("path");
const fs = require("fs");
const express = require("express");
const app = express();
const httpServer = http.createServer(app);
const PORT = process.env.PORT || 3000;
httpServer.listen(3000, () => {
console.log(`Server is listening on port ${PORT}`);
});
// put the HTML file containing your form in a directory named "public" (relative to where this script is located)
app.get("/", express.static(path.join(__dirname, "./public")));
完成后,用户将可以通过该表单将文件上传到您的服务器。但是要在您的应用程序中重组上载的文件,您需要解析请求正文(作为多部分表单数据)。
在 Express 3.x中, 您可以使用express.bodyParser
中间件来处理多部分表单,但是从 Express 4.x开始
,该框架没有捆绑任何正文解析器。幸运的是,您可以从众多可用的 multipart / form-data
解析器中
选择一种。在这里,我将使用multer:
您需要定义处理表单帖子的路线:
const multer = require("multer");
const handleError = (err, res) => {
res
.status(500)
.contentType("text/plain")
.end("Oops! Something went wrong!");
};
const upload = multer({
dest: "/path/to/temporary/directory/to/store/uploaded/files"
// you might also want to set some limits: https://github.com/expressjs/multer#limits
});
app.post(
"/upload",
upload.single("file" /* name attribute of <file> element in your form */),
(req, res) => {
const tempPath = req.file.path;
const targetPath = path.join(__dirname, "./uploads/image.png");
if (path.extname(req.file.originalname).toLowerCase() === ".png") {
fs.rename(tempPath, targetPath, err => {
if (err) return handleError(err, res);
res
.status(200)
.contentType("text/plain")
.end("File uploaded!");
});
} else {
fs.unlink(tempPath, err => {
if (err) return handleError(err, res);
res
.status(403)
.contentType("text/plain")
.end("Only .png files are allowed!");
});
}
}
);
在上面的示例中,发布到 / upload的* .png 文件将保存到相对于脚本所在位置的上 载 目录。 ***
为了显示上传的图像,假设您已经有一个包含 img 元素的HTML页面:
<img src="/image.png" />
您可以在快速应用中定义其他路线,并用于res.sendFile
提供存储的图像:
app.get("/image.png", (req, res) => {
res.sendFile(path.join(__dirname, "./uploads/image.png"));
});
问题内容: 我已经使用以下代码: fileupload.html fileupload.js: 我已经使用以上这些代码进行文件上传,但是在终端中使用节点fileupload.js执行时,出现类型错误 任何人都可以帮助解决此问题。 问题答案: 您正在尝试使用的旧API。它改变了一段时间,请参阅文档以获取更多信息。 在您上载单个文件的特定情况下,您将删除该行,而使用和一样:
问题内容: 在我的应用程序中,我在div中有一个图像,一个按钮。 我想旋转显示的图像,并在使用jquery单击按钮时保存旋转的图像。 我已经使用了代码: http://code.google.com/p/jquery-rotate/ 和jQuery代码: html代码: 当我使用上述代码时,有两个图像,一个是旧图像,另一个是旋转图像。 在这里我想旋转相同的图像并仅显示旋转的图像。并将旋转的图像保存
所以,基本上,我需要上传单个图像,将其保存到localStorage中,然后在下一页上显示它。 目前,我有我的HTML文件上载: 它使用该函数在页面上显示图像 图像会立即显示在页面上供用户查看。然后要求他们填写表格的其余部分。这部分工作很好。 一旦表格完成,他们然后按下一个“保存”按钮。按下此按钮后,我将所有表单输入保存为字符串。我需要一种方法来将图像保存为项。 save按钮还将引导他们进入一个新
我是NodeJS的新手,我正在使用express、ejs和Multer(处理多部分/表单数据)开发一个项目,以便上传一张图片(单个>>个人资料图片)。我一直试图在一个视图中显示上传的文件(图像),但没有成功。我有关于上传文件(req.file)的所有信息,但我不能用它做任何事情。 有人能帮帮我吗。 问候你,多娜
我正在使用JavaFX,在那里我编写了一个包含的代码,通过我想在我的场景上显示图像,但它不起作用。图像不显示。 当我使用它还显示一个错误。虽然我70%的编码已经完成,但我只是坚持在现场显示图像(不上传)。 以下是我正在使用的代码: 所以,我需要的是通过单击按钮并选择图像来显示我的场景中的图像。
问题内容: 我刚刚使用Python图像库(PIL)进行了一些图像处理,这是我之前发现的用于执行图像的傅立叶变换的文章,但是我无法使用save函数。整个代码运行良好,但不会保存生成的图像: 我得到的错误如下: 如何使用Pythons PIL保存图像? 问题答案: 已解决有关文件扩展名的错误,您可以使用(不带点)或将输出名称与扩展名一起传递。现在要处理该错误,您需要在频域中适当地修改数据以将其保存为整