Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/429.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用Paste.js将截图粘贴到文本区域,但如何将其传输到Rails?_Javascript_Ruby On Rails_File Upload_Screenshot_Copy Paste - Fatal编程技术网

Javascript 使用Paste.js将截图粘贴到文本区域,但如何将其传输到Rails?

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=) 但这会使整个文本

我正在开发一个解决方案,允许将屏幕截图直接粘贴到Rails中的文本区域,该区域将被解析为Markdown lateron

我找到了neat库,它捕获剪贴板,检测是否粘贴了字符串或图像,然后通过将图像转换为Base64字符串来对图像作出反应,然后可以将其用作图像

按原样,Paste.js提供了将简单图像标记粘贴到文本区域所需的一切,如下所示:

![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会有用?我期待着你的回答。