【问题标题】:Saving user uploaded image to folder and/or server将用户上传的图像保存到文件夹和/或服务器
【发布时间】:2018-12-26 01:24:15
【问题描述】:

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

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

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

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

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

【问题讨论】:

  • 那么你用什么做服务器?
  • 应用程序托管在某处,但我只能访问它的 FTP。够了吗?
  • 我不这么认为,您必须将任何凭据放入客户端,以便他们可以上传自己的图片,如果您的设置是我想的那样,他们就会入侵您的网站。我认为您最好的选择是使用 firebase cloud storageAmazon S3

标签: javascript reactjs canvas


【解决方案1】:

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

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

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

如果您每年不超过 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() ;

【讨论】:

  • 不是,你需要使用像 C#、node 或 PHP 这样的服务器代码在 FTP 上写入。从 JS 和 FTP 服务器对话太危险了。然后任何人都可以在服务器上做他们想做的事
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2010-12-28
  • 1970-01-01
  • 1970-01-01
  • 2019-02-20
  • 1970-01-01
  • 1970-01-01
  • 2013-07-11
相关资源
最近更新 更多