使用phpMyAdmin下载时,BLOB字段被剪切

塞尔吉奥·阿科斯

原始的mysql-client:(好)

mysql> SELECT blobfield FROM `mytable` WHERE `id` = 46361 ;
{"example":"日本語...", "everything": "ok"}

phpMyAdmin>导出> SQL:(好)

(46361, 0x7b226578616d706c65223a223f3f3f2e2e2e222c202265766572797468696e67223a20226f6b227d);

phpMyAdmin>浏览>单击BLOB字段:(失败。仅部分保存)

{"example":"日本語...", "everythi

(编辑)curl(phpMyAdmin请求):

curl 'http://127.0.0.1:48001/tbl_get_field.php?db=develop&table=mytable&where_clause=%60mytable%60.%60id%60+%3D+46361&transform_key=data&sql_query=SELECT+id%2Cdata+FROM+%60mytable%60+WHERE+id%3D46361&token=removed' -H 'User-Agent: Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:37.0) Gecko/20100101 Firefox/37.0'
{"example":"日本語...", "everythi

(edit2)(在详细模式下,我发现了一个错误...)

< HTTP/1.1 200 OK
* Server nginx/1.6.2 is not blacklisted
< Server: nginx/1.6.2
< Date: Mon, 13 Apr 2015 10:45:08 GMT
< Content-Type: application/octet-stream
< Content-Length: **6453**
< Connection: keep-alive
< X-Powered-By: PHP/5.5.22-1~dotdeb.1
< Expires: Mon, 13 Apr 2015 10:45:08 +0000
< Cache-Control: no-store, no-cache, must-revalidate,  pre-check=0, post-check=0, max-age=0
< Pragma: no-cache
< Last-Modified: Mon, 13 Apr 2015 10:45:08 +0000
< Content-Description: File Transfer
< Content-Disposition: attachment; filename="mytable-data.bin"
< Content-Transfer-Encoding: binary

 * Excess found in a non pipelined read: excess = **1338**, size = 6453, maxdownload = 6453, bytecount = 0 .

有人有同样的问题吗?我猜phpMyAdmin发送了错误的Content-Length值。

我的配置:

  • MySQL的:5.6.23-日志
  • phpMyAdmin:4.4.1.1
  • 连接:utf8mb4_bin(从utf8_bin自动切换)
  • innodb的:utf8_bin
  • nginx / 1.7.9
  • 的PHP:5.6.4-1 + deb.sury.org〜trusty + 1 + mysqli
塞尔吉奥·阿科斯

在文件“ tbl_get_field.php”中,我发现:

PMA_downloadHeader(
    $table . '-' .  $_GET['transform_key'] . '.bin',
    PMA_detectMIME($result),
    /*overload*/mb_strlen($result)
);

最后一行使用内部mb_internal_encoding()计算总长度。就我而言,它设置为UTF-8。

更改为:

/*overload*/mb_strlen($result, '8bit')

解决了我的问题。此处的信息:http : //php.net/manual/zh/function.mb-strlen.php#77040

将行添加到我的Dockerfile中:

RUN sed -i.bak s/mb_strlen\(\$result\)/mb_strlen\(\$result,\'8bit\'\)/g /data/http/tbl_get_field.php

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

当字段包含逗号时,如何使用命令“剪切”来剪切CSV文件中的字段?

来自分类Dev

使用溢出时避免剪切:

来自分类Dev

使用R中的剪切功能剪切数据时显示空组

来自分类Dev

使用内嵌SVG的剪切路径在position:absolute时剪切错误的元素

来自分类Dev

使用TranslateTransform时,画布上的WPF XAML剪切椭圆

来自分类Dev

当文件在中间被剪切时使用Dropbox传输文件

来自分类Dev

使用包 plot3D 时直方图被剪切

来自分类Dev

剪切命令的“字段”是什么构成的?

来自分类Dev

使用CSS剪切文本

来自分类Dev

使用JavaScript剪切文字

来自分类Dev

使用FFmpeg剪切视频

来自分类Dev

使用DD命令剪切

来自分类Dev

使用Eval和Substring在GridView中剪切一个字段

来自分类Dev

phpMyAdmin:日期字段显示为BLOB

来自分类Dev

超出TD边界时剪切图像

来自分类Dev

缩放时导航的背景颜色剪切

来自分类Dev

缩放时图像仅从右侧剪切

来自分类Dev

使用“使用”时,剪切路径无法在SVG精灵中正确显示

来自分类Dev

使用Theme.AppCompat.Dialog时,操作栏看起来被剪切了

来自分类Dev

使用CSS或剪切路径在悬停时等距45度(长/对角线)阴影

来自分类Dev

使用剪切路径时图像和标题隐藏:多边形HTML / CSS

来自分类Dev

如何在使用Typescript渲染时剪切短长字符串

来自分类Dev

SVG 剪切蒙版在使用 CSS 动画时无法按预期工作

来自分类Dev

使用opencv4android,如何在相机打开时自动剪切视频帧

来自分类Dev

如何从剪切命令字段值中剪切单词和值?

来自分类Dev

使用<select>时文本被剪切

来自分类Dev

使用htaccess剪切多个网址

来自分类Dev

如何使用剪切和AWK sed的?

来自分类Dev

使用条件剪切的Prolog查询

Related 相关文章

热门标签

归档