gpt4 book ai didi

PHP 上传文件到数据库不适用于 gif、jpeg 和其他文件类型

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

我遇到一些 PHP/MySQL 不工作的问题。我可以完美地上传 .docx 和 .sql 等文件,但是当我尝试使用 .gif、.jpg .zip 和 .rar 时,它不起作用。

这是上传表单代码:

<?php 
if (isset($_GET['uploadError']))
{
echo '<div id="error">There was an error uploading the file. Please try again</div>';
}
elseif ((!isset($_SESSION['dbusername']))&&(!isset($_SESSION['dbpassword'])))
{
header('Location: ?page=login&uploadAttempt=true&attemptedSite=upload');
}
else
{
echo '
<center>
<form class="form" enctype="multipart/form-data" action="uploadaction.php" method="POST">
<input type="hidden" name="MAX_FILE_SIZE" value="30720" />
<p class="uploadfile">
<input name="uploadedfile" type="file" />
</p>
<p class="submit">
<input type="hidden" name="upload" value="start" />
<input type="submit" value="Upload File" />
</p>
</form></center>';
}
?>

这是 uploadaction.php 代码:

    <?php
require('lib.php');
localhost_con('filehunt');
session_start();

if(isset($_POST['upload']) && $_FILES['uploadedfile']['size'] > 0)
{
$fileName = $_FILES['uploadedfile']['name'];
$tmpName = $_FILES['uploadedfile']['tmp_name'];
$fileSize = $_FILES['uploadedfile']['size'];
$fileType = $_FILES['uploadedfile']['type'];

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

if(!get_magic_quotes_gpc())
{
$fileName = addslashes($fileName);
}
/*$fh = fopen($_FILES['uploadedfile']['tmp_name'], 'r');
$theData = fread($fh, filesize($_FILES['uploadedfile']['tmp_name']));
$theData = mysql_real_escape_string($theData);
fclose($fh); */
$date = date("y/m/d : H:i:s", time());

$sql = "INSERT INTO files (rowID, file, mimetype, data, uploaded_by, uploaded_date, size, times_downloaded)
VALUES (NULL, '$fileName', '$fileType', '$content', '$user', '$date', $fileSize, 0);";

if (mysql_query($sql,$con))
{
header('Location: index.php?page=search&uploadSucces=true');
}
else echo mysql_error();
}
else header('Location: index.php?page=upload&uploadError=true');

?>

它被插入到数据库中,但是 mimetype 和数据列是空的。谁能告诉我为什么会这样,以及如何解决?

提前谢谢你亚当

最佳答案

我在处理其他类型的文件时遇到了同样的问题。解决方法是使用传输更安全的 base64 对文件进行编码(不包含可能截断流的无效字符)。

关于PHP 上传文件到数据库不适用于 gif、jpeg 和其他文件类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9250625/

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