gpt4 book ai didi

php - Mysql blob 字段有第一行空格,因此不会播放文件

转载 作者:行者123 更新时间:2023-11-29 09:10:03 25 4
gpt4 key购买 nike

我有一些代码可以从 Android 上传和下载录音。我遇到的问题是二进制文件中出现了一个额外的空行。当它被删除时,文件会播放,我想知道如何阻止此行的出现。下面是我的上传和下载代码以及空行的打印屏幕

上传代码

    mysql_select_db ($database); 

// Make sure the user actually
// selected and uploaded a file
if (isset($_FILES['image']) && $_FILES['image']['size'] > 0) {

$size = $_FILES['image']['size'];
$type = $_FILES['image']['type'];

// Temporary file name stored on the server
$tmpName = $_FILES['image']['tmp_name'];

// Read the file
$fp = fopen($tmpName, 'r');
$data = fread($fp, filesize($tmpName));
fclose($fp);

$data = trim(addslashes($data));

// Create the query and insert
// into our database.
$query = "INSERT INTO media";
$query .= "(file, file_size, file_type) VALUES ('$data','$size','$type')";
$results = mysql_query($query, $link);

$mediaid = mysql_insert_id();

$gender = $_POST['gender'];
$cat_id = $_POST['cat'];
$name = $_POST['name'];
$lat = $_POST['lat'];
$lon = $_POST['lon'];
$user = $_POST['user'];


$query="INSERT INTO instance (name, gender, cat_id, lon, lat, user_id) VALUES ('$name', '$gender', '$cat_id', '$lon', '$lat', '$user')";
$result=mysql_query($query);


$instanceid = mysql_insert_id();

$query4 = "INSERT INTO media_link";
$query4 .="(media_id, instance_id) Values ('$mediaid','$instanceid')";
$results4 = mysql_query($query4, $link);

}

// Close our MySQL Link
mysql_close($link);
?>

下载代码

$test2 = @mysql_query("select * from media where media_id = '$media'");
$result2 = mysql_fetch_array($test2);

header('Content-Type: audio/AMR');
header('Content-Disposition: attachment; filename="ifound.amr"');


print $result2['file'];
exit;

?>

出现空行 blank line

最佳答案

检查您的下载代码在第一个 <?php 之前是否有空行。请记住检查它包含的所有文件。

同时更改addslashesmysql_real_escape_string 。它可能不会在这里造成问题,但它是安全漏洞。

如果您找不到问题的根源,您可以随时尝试 base64_encode/base64_decode 。它需要多出 30% 的存储空间,但这是一种在字符串中存储二进制数据的可靠方法。

小提示:

  $fp      = fopen($tmpName, 'r');
$data = fread($fp, filesize($tmpName));
fclose($fp);

可以替换为

  $data = file_get_contents($tmpName)

关于php - Mysql blob 字段有第一行空格,因此不会播放文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5860086/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com