1
alexrezit 2013-12-20 10:44:58 +08:00 1
BASE64 挺浪费空间的... 直接提交就行了呗...
|
2
FrankFang128 2013-12-20 10:47:42 +08:00 via Android 1
arraybuffer是什么,前端表示JS里没这东西。
|
3
ijse 2013-12-20 10:50:08 +08:00 1
|
4
duhastmich 2013-12-20 10:51:02 +08:00 1
multipart? 也可以不用表单直接二进制传
|
5
loading 2013-12-20 10:54:03 +08:00 via iPhone 1
切成两个或以上传不就好了…
|
6
FrankFang128 2013-12-20 11:03:07 +08:00 via Android 1
哦,这个还没关注过。直接把它交给FormData有什么问题
|
7
dreampuf 2013-12-20 11:21:08 +08:00 1
不能做成 <input type="file"> ?
|
8
ETiV 2013-12-20 11:24:27 +08:00 via iPhone 1
Base64之后给flash.
用flash解base64,上传压缩后的二进制 |
9
yuelang85 2013-12-20 11:32:54 +08:00 1
base64就变大了。。。。
|
10
10iii OP @alexrezit
@duhastmich @FrankFang128 @yuelang85 解释一下:数据比较多,几百KB级别,又是给面向手机的,所以想尽量节省网络流量。 如果直接post提交arraybuff的二进制数据,实际上在传输的过程当中是uri encode成%FF%FF的形式传输的,那么针对一个32位的数据,实际传输“%FF%FF%FF%FF”,一共是12个ascii字符。 如果先转base64,实际上是6位转为一个ascii字符,那么32位只需要不到6个ascii字符,在传输上节省了一半空间。 想知道还有没有更高效的传输方式。 |
11
alexrezit 2013-12-20 12:10:13 +08:00 via iPad 1
@10iii
直接传不行? form data req 发过去原来是什么样还是什么样, 怎么会遇到 URL encode 的问题? |
12
joyjy 2013-12-20 12:32:55 +08:00 1
是不是 POST 的时候使用了 application/x-www-form-urlencoded ?照 @duhastmich 说的使用 multipart/form-data 呢?
|
13
Mutoo 2013-12-20 12:59:07 +08:00 1
@10iii post本身就支持二进制的,“不然怎么上传图片”。你在开发工具里看到的 uri encode 是浏览器为了显示自动帮你转的。
|
14
icyalala 2013-12-20 13:58:19 +08:00 1
页面里就用<input type="file" />,表单类型就是multipart/form-data。
要是直接用代码post,再继续加个gzip。 |
15
loading 2013-12-20 14:15:21 +08:00 via iPhone 1
lz不会是说放到url不够长吧…
|
16
10iii OP |