Javascript 使用Paste.js将截图粘贴到文本区域,但如何将其传输到Rails?
我正在开发一个解决方案,允许将屏幕截图直接粘贴到Rails中的文本区域,该区域将被解析为Markdown lateron 我找到了neat库,它捕获剪贴板,检测是否粘贴了字符串或图像,然后通过将图像转换为Base64字符串来对图像作出反应,然后可以将其用作图像 按原样,Paste.js提供了将简单图像标记粘贴到文本区域所需的一切,如下所示:Javascript 使用Paste.js将截图粘贴到文本区域,但如何将其传输到Rails?,javascript,ruby-on-rails,file-upload,screenshot,copy-paste,Javascript,Ruby On Rails,File Upload,Screenshot,Copy Paste,我正在开发一个解决方案,允许将屏幕截图直接粘贴到Rails中的文本区域,该区域将被解析为Markdown lateron 我找到了neat库,它捕获剪贴板,检测是否粘贴了字符串或图像,然后通过将图像转换为Base64字符串来对图像作出反应,然后可以将其用作图像 按原样,Paste.js提供了将简单图像标记粘贴到文本区域所需的一切,如下所示: ![Some alt text](data:image/png;base64,iVBORw0KGgoAA...SUVORK5CYII=) 但这会使整个文本
![Some alt text](data:image/png;base64,iVBORw0KGgoAA...SUVORK5CYII=)
但这会使整个文本区域变得杂乱无章,Base64字符串可能会变得非常非常长。所以我只想插入一个占位符,如下所示:
![Some alt text](blob:3857c1cf-1a68-4549-bc0d-aa18af25bb82)
然后,在一个隐藏的输入字段中,我想发送Base64数据:
<input type="hidden" name="post[content][screenshots][3857c1cf-1a68-4549-bc0d-aa18af25bb82]" value="data:image/png;base64,iVBORw0KGgoAA...SUVORK5CYII=" />
我现在的问题是:您将如何在Rails的服务器端实现这一点?我只想将它们保存为上传
下的常规文件,在这里我还存储从Carrierwave上传的内容
我不希望它们在粘贴时自动上传,因为用户可以在创建或编辑帖子时取消,我也不希望上传空间被未使用的图像弄乱
此外,我不希望图像(保存后)再次从服务器上删除,例如,当从博客文章中删除引用时,因为博客文章是版本化的(使用书面记录),引用将始终存在于旧版本中,因此我认为保留旧图像也是明智的
你认为这有意义吗?还是我错过了什么?是否存在我看不到的限制(例如长Base64字符串的上载限制)
也许还有其他图书馆也这么做?我知道GitHub问题支持此功能,但我不知道他们是如何做到的,他们也不允许在Firefox中粘贴屏幕截图(这是由Paste.js支持的)。我对我的博客有这个确切的要求。感谢为paste.js提供的提示;我实现了它并编写了一个 我使用以下方法来实现它
- 用户将图像粘贴到文本区域
- Paste.js捕获base64/png数据
- Ajax将此负载发送到服务器
- 服务器转换为jpeg
- 将其保存在服务器上
- 将降价链接返回到前端
- 将标记链接附加到textarea的内容
我想更改最后一点,这样它就可以记住用户光标的位置并将其插入其中,而不是将其附加到末尾。我对我的博客有这个确切的要求。感谢为paste.js提供的提示;我实现了它并编写了一个 我使用以下方法来实现它
- 用户将图像粘贴到文本区域
- Paste.js捕获base64/png数据
- Ajax将此负载发送到服务器
- 服务器转换为jpeg
- 将其保存在服务器上
- 将降价链接返回到前端
- 将标记链接附加到textarea的内容
我想更改最后一点,以便它能够记住用户光标的位置并将其插入其中,而不是将其附加到末尾。同时,我使用Paste.js和carrierwave-base64 gem实现了这一点
我将很快在这里添加一个详细的答案,但目前,我的项目应该提供所有需要的信息。同时,我使用Paste.js和carrierwave-base64 gem实现了这一点
我很快会在这里添加一个详细的答案,但目前,我的项目应该提供所有需要的信息。我目前面临着同样的问题。你有没有看过再填充宝石。如果我成功的话,我会尝试一下并发布一个答案。我正在使用Carrierwave上传文件。没有时间进一步调查这个问题,但也许gem会有用?我期待着你的回答。我现在面临着同样的问题。你有没有看过再填充宝石。如果我成功的话,我会尝试一下并发布一个答案。我正在使用Carrierwave上传文件。没有时间进一步调查这个问题,但也许gem会有用?我期待着你的回答。我现在面临着同样的问题。你有没有看过再填充宝石。如果我成功的话,我会尝试一下并发布一个答案。我正在使用Carrierwave上传文件。没有时间进一步调查这个问题,但也许gem会有用?我期待着你的回答。