我尝试将文件上传到我的数据库,但我得到的是HTTP 500内部服务器错误,我已经在网络服务器上授予了与文件上传相关的所有权限。
require_once ("../WebConfig/Connection.php");
if(isset($_POST["submit1"])) {
$imagedata = mysql_real_escape_string(file_get_contents($_FILES["f1"]["tmp_name"]));
$filetype = mysql_real_escape_string($_FILES["f1"]["type"]);
insertBlobPicture($imagedata,$filetype);
} else {
echo "Failed: URL parameters not set";
}
function insertBlobPicture($filePath, $mime)
{
$db = mysqli_connect(HOST,USERNAME,PASSWORD,DATABASE)
or die("Failed: Could not connect to the MySQL ". mysqli_connect_error());
$blob = fopen($filePath, 'rb');
echo "Connected To: ". $db;
$sql = mssql_query("INSERT INTO PICTURE(DATA,MIME )VALUES ('$blob','$mime')");
$result = $db->query($sql);
if($result->num_rows > 0)
{
echo "Succes";
}else{
echo "Failed";
}
}
答案 0 :(得分:1)
您不能在mysql连接上使用mssql_query()。您的代码至少存在类型不匹配。
顺便说一句:如果您提供环境中的日志信息以及代码,那么帮助您会更容易。
答案 1 :(得分:1)
有两个问题。
(1)$ blob:你想插入MySQL blob字段。查看您的代码,
$blob = fopen($filePath, 'rb');
现在你的$ blob是文件的句柄(资源),而不是文件的真实内容。
(2)$ imagedata:根据您的脚本,$ imagedata是文件的内容,而不是文件的路径。所以当你想使用" $ blob = fopen($ filePath,' rb');"在你的脚本中,500发生了。
这是一个新的insertBlobPicture函数供您参考。
<?php
function insertBlobPicture($blob, $mimie){
$db = mysqli_connect(HOST,USERNAME,PASSWORD,DATABASE)
or die("Failed: Could not connect to the MySQL ". mysqli_connect_error());
$sql = mssql_query("INSERT INTO PICTURE(DATA,MIME )VALUES ('$blob','$mime')");
$result = $db->query($sql);
......
}
?>