我有一个应用程序,允许用户上传图像、裁剪图像并与其他数据一起将其全部保存为 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/