首页 / PHP / 在PHP和MySql中上传大小问题
在PHP和MySql中上传大小问题
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了在PHP和MySql中上传大小问题,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2084字,纯文字阅读大概需要3分钟。
内容图文
![在PHP和MySql中上传大小问题](/upload/InfoBanner/zyjiaocheng/888/087300284bc8488396b6a3e1d0b70abe.jpg)
我正在通过PHP将文件上传到MySql DB.
我能够上传大小达1MB的文件(通过反复试验找到).
大小超过1 MB的文件无法上传.
PHP中mysql_error()函数打印的MySql错误是:
MySQL服务器已经消失了
有人可以帮帮我吗?
MySql服务器已启动并仅针对请求运行> 1MB它给出了这个错误.
问候,
Mayank.
P.S:
我正在使用表单上传文件.
< FORM METHOD =“post”ACTION =“fileUpload.php”ENCTYPE =“multipart / form-data”>
< INPUT TYPE =“hidden”NAME =“MAX_FILE_SIZE”VALUE =“300000000”>
< INPUT TYPE =“hidden”NAME =“action”VALUE =“upload”>
描述:< TEXTAREA NAME =“txtDescription”ROWS =“1”COLS =“80”>< / TEXTAREA>
< INPUT TYPE =“file”NAME =“binFile”ID =“binFile”>
< INPUT TYPE =“submit”NAME =“Upload”VALUE =“Upload”>
< / FORM>
解决方法:
您的SQL查询可能超过了max_allowed_packet大小,在这种情况下服务器将断开连接.
您可能对mysqli_stmt::send_long_data感兴趣,它允许您以块的形式发送比max_allowed_pa??cket更长的参数.
更新:“我怎样才能改变它?使用mysqli是唯一的选择吗?”
Afaik的值不能在每个会话的基础上更改,即如果您无法更改服务器配置(my.cnf或启动参数),则该值将是只读的.编辑:正如评论建议你可以在启动后更改mysql服务器的全局值,如果你有the proper permissions.
PDO / PDO_MYSQL(从phpversion 5.3.0开始)似乎不支持send_long_data,但我也不确定.这将使mysqli成为唯一的选择.我最近注意到Wez Furlong加入了堆栈溢出.由于他是PDO实现的作者之一,他可能知道(尽管他没有编写pdo_mysql模块).
(完全未经测试和丑陋)的例子
// $mysqli = new mysqli(....
$fp = fopen($_FILES['binFile']['tmp_name'], 'rb') or die('!fopen');
//$result = $mysqli->query('SELECT @@max_allowed_packet') or die($mysqli->error);
//$chunkSize = $result->fetch_all();
//$chunkSize = $maxsize[0][0];
$chunkSize = 262144; // 256k chunks
$stmt = $mysqli->prepare('INSERT INTO foo (desc, bindata) VALUES (?,?)') or die($mysqli->error);
// silently truncate the description to 8k
$desc = 8192 < strlen($_POST['txtDescription']) ? $_POST['txtDescription'] : substr($_POST['txtDescription'], 0, 8192);
$stmt->bind_param('sb', $desc, null);
while(!feof($fp)) {
$chunk = fread($fp, $chunkSize);
$stmt->send_long_data(1, $chunk) or die('!send_long_data.'.$stmt->error);
}
$result = $stmt->execute();
内容总结
以上是互联网集市为您收集整理的在PHP和MySql中上传大小问题全部内容,希望文章能够帮你解决在PHP和MySql中上传大小问题所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。