javascript - 将用户上传的图像保存到文件夹和/或服务器

标签 javascript reactjs canvas

我有一个应用程序,允许用户上传图像、裁剪图像并与其他数据一起将其全部保存为 html 文件,以用作电子邮件的页脚。图像以 base64 形式提供给他们。

然而,事实证明 Outlook 不支持此功能,因为它不接受 b64 数据作为 img 源。

所以我的想法是将裁剪后的图像保存到一个文件中,比方说/public/avatars/avatar.png 并将其目录链接为源。但是,我无法找到使用 JS 将图像保存到文件的方法。我允许的堆栈是 JS 和 React,没有 Node.js。

我该怎么做?我可以将文件作为 b64 或 canvas 元素,所以我在这里很灵活,只要将其保存到文件即可。

我也愿意接受其他解决方案。

最佳答案

您无法仅使用客户端语言保存文件。您必须将其保存到服务器、自己的服务器或外部服务器或 AWS 等服务。

没有服务器端的最佳解决方案(奇怪的是)是使用 API 来保存图像并从此 API 获取链接。然后您可以使用此链接连接到 Outlook。

您可以使用https://aws.amazon.com/fr/cloudfront/ 50Go 和每月 200 万次请求免费使用一年。

如果您每年的图像不超过 300,000 张,您可以使用此服务:https://cloudinary.com/pricing

您还可以使用https://www.deviantart.com/developers/但这并不是真正的服务重点。

奇怪的解决方案:

请注意,您的 FTP 用户的登录名和密码将在您的代码源中提供。必须管理最低限度的权利。

您可以使用此脚本从 JS 与 FTP 服务器对话(未经测试,但似乎有效):http://www.petertorpey.com/files/ae/scripts/FTPConnection.jsx

你可以尝试这样的事情:

var ftp = new FtpConnection("ftp://URL") ;
ftp.login("username", "password");

ftp.cd("FOLDER") // For move to folder
ftp.put(file,"FILE.PNG") ; // File must be a File JS Object

ftp.close() ;

关于javascript - 将用户上传的图像保存到文件夹和/或服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51396676/

相关文章:

swift - 如何访问 SwiftUI Canvas 中的像素数据

javascript - 修改 child 的原型(prototype)会影响 parent 的原型(prototype)吗?

javascript - 在哪里可以找到 twitter bootstrap 1.4 版示例和文档?

javascript - 将 st、nd、rd 和 th(序数)后缀添加到数字

javascript - 在选项卡之间切换时避免在 React 中重新渲染

javascript - 在 parent 之前 react child Prop 渲染?

javascript - React.useCallback 会内存 curried 函数吗?

javascript - Fabric.js 对象内的裁剪路径

java - 带有 JavaScript 界面的 Webview

javascript - 在 HTML5 Canvas 上绘制矩形