图像未被上传到MySQL
问题描述:
这一切都始于我得到一个不明身份的索引错误:图像。然后我把检查之前,所以我不会再看到错误。但是我知道这些图像没有被上传。我用合法的图片来测试,没有任何工作。我一直在这方面挣扎了好几个小时。请帮忙。图像未被上传到MySQL
<html>
<body>
<form action="images-add.php" method="post" enctyp="multipart/form-data">
<input type="file" name="image" />
<input type="submit" name="sum" value="upload" />
</form>
</body>
</html>
<?php
include('connection.php');
if(isset($_POST['image'])) {
if(empty($_FILES) || !isset($_FILES['image'])){
echo "Please Add an Image";
}else{
if(getimagesize($_FILES['image']['tmp_name']) == FALSE){
$image= addslashes($_FILES(['image']['tmp_name']));
$name= addslashes($_FILES(['image']['name']));
$image= file_get_contents($image);
$image= base64_encode($image);
saveimage($name, $image);
}
}
}
function saveimage($name, $image){
$con= mysql_connect("localhost", "root", "");
mysql_select_db("hw2", $con);
$qry= "insert into images (name, image) values ('$name', '$image')";
$result= mysql_query($qry,$con);
if($result) {
echo "<br/> Image Uploaded.";
}else{
echo "Not Uploaded";
}
}
?>
答
请你的HTML表单改变enctyp
到enctype
。 还要更新代码 从
$image= addslashes($_FILES(['image']['tmp_name']));
要
$image= addslashes($_FILES['image']['tmp_name']);
而且 这行代码,从
$name= addslashes($_FILES(['image']['name']));
要
$name= addslashes($_FILES['image']['name']);
下面给出了完整的代码...
<html>
<body>
<form action="" method="POST" enctype="multipart/form-data">
<input type="file" name="image" />
<input type="submit" name="sum" value="upload" />
</form>
</body>
</html>
<?php
include('connection.php');
if($_POST){
if(empty($_FILES) || !isset($_FILES['image'])){
echo "Please Add an Image";
}else{
if(getimagesize($_FILES['image']['tmp_name'])){
$image= addslashes($_FILES['image']['tmp_name']);
$name= addslashes($_FILES['image']['name']);
$image= file_get_contents($image);
$image= base64_encode($image);
saveimage($name, $image);
}
}
}
function saveimage($name, $image){
$con= mysql_connect("localhost", "root", "");
mysql_select_db("hw2", $con);
$qry= "insert into images (name, image) values ('$name', '$image')";
$result= mysql_query($qry,$con);
if($result) {
echo "<br/> Image Uploaded.";
}else{
echo "Not Uploaded";
}
}
?>
我希望这段代码适合你。
正如我读,可能是在mysql中的字段图像的定义 –
不要'保存数据库中的文件。 http://stackoverflow.com/a/41235395/267540专门base64编码 – e4c5
正确的enctyp'enctype'并使用mysqli而不是mysql。 – Rose