我正在尝试使用标准例程向我的Web应用程序添加图像粘贴功能:
$('textarea').on('paste', function (ev) {
var clipboardData = ev.originalEvent.clipboardData;
$.each(clipboardData.items, function (i, item) {
if (item.type.indexOf("image") !== -1) {
var reader = new FileReader();
reader.readAsDataURL(item.getAsFile());
reader.addEventListener('loadend', ...);
...
}
});
});
Run Code Online (Sandbox Code Playgroud)
完整的样本可以在这里找到:http://jsfiddle.net/t8t2zj6k/
当我从图像查看器软件复制并粘贴图像时,它可以正常工作,但是当我尝试使用文件浏览器(例如Mac上的Finder或Linux上的Nautilus)做同样的事情时,我只得到一个文本字符串使用文件路径甚至是带有文件类型图标的图像而不是原始文件.
有没有办法正确处理文件浏览器中的粘贴?
我正在尝试通过Erlang客户端发送带有元数据的消息,我无法理解如何在消息的基本属性记录中设置自定义应用程序头.我已经尝试了所有这些选项但没有成功:
#'P_basic'{headers = [{<<"key">>, <<"value">>}]}
#'P_basic'{headers = [{"key", <<"value">>}]}
#'P_basic'{headers = [{key, <<"value">>}]}
Run Code Online (Sandbox Code Playgroud)
似乎头文件使用了一些特殊的数据结构,一个AMQP表 - 但我找不到任何关于此问题的文档或示例.
发送带标题的邮件的正确方法是什么?
什么是最好的方法来摆脱在Haskell中序列化/反序列化二进制数据的样板代码,考虑到字节序?即,给定这个结构:
data Foobar = Foobar { foo :: Word16, bar :: Word32 }
Run Code Online (Sandbox Code Playgroud)
派生Data.Binary.Binary类型类实例:
instance Binary Foobar where
get = do
foo <- get
bar <- get
return $ Foobar foo bar
Run Code Online (Sandbox Code Playgroud)
decode stream :: Foobar 将数据视为大端.
显而易见的方法是使用getWord16le/ getWord32lefunctions,但它涉及大量的手工工作(可以通过Template Haskell与derive一起自动完成).
也许,参数化类型是解决方案?
因为在浏览器中没有通过XHR(AJAX)发送二进制文件的普遍支持,我需要以base64编码发送一个PNG图像(Content-Encoding: base64可能是带有HTTP头).
在Jersey方面解码base64编码数据的正确方法是什么?